码迷,mamicode.com
首页 > 其他好文 > 详细

旋转控件和高级编辑控件

时间:2017-12-24 15:49:33      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:gb2312   循环   bsp   new   byte   int   effect   mask   long   

一. 旋转控件 CSpinButtonCtrl

(1)控件类型  

  UDS_ALIGNRIGHT/UDS_ALIGNLEFT 内嵌到绑定的控件左边和右边  

  UDS_SETBUDDYINT 点击控件发送WM_SETTEXT消息,改变CEdit控件的值  

  UDS_WRAP 在RANG返回循环增加和减少  

  UDS_ARROWKEYS  

  UDS_NOTHOUSANDS  

  UDS_AUTOBUDDY  

  UDS_HORZ Spin控件水平放置,默认为垂直放置

(2)创建控件  

  CSpinButtonCtrl *pSpin = new CSpinButtonCtrl;

  pSpin->Create(WS_CHILD|WS_VISIBLE|UDS_ARROWKEYS|UDS_ALIGNRIGHT

         |UDS_SETBUDDYINT|UDS_WRAP , CRect(0,0,20,25), this, IDC_SPIN);  

  pSpin->MoveWindow(200, 302,20,25);

(3)绑定CEdit控件

   若在创建CSpin控件时添加UDS_AUTOBUDDY类型,会自动绑定到最近的CEdit控件上  

  手动绑定 pSpin->SetBuddy(pEdit);  

(4)设置范围  

  pSpin->SetRange32(1,20);   // 默认范围100-0  

二. 高级编辑控件CRichEdit

(1) 重要数据结构CHARFORMAT  

  typedef struct _charformat  {   

    UINT     cbSize;   // 数据结构大小,由于版本变化结构大小可能发生变化   

    DWORD    dwMask;   // CFM_FACE|CFM_SIZE|CFM_COLOR|CFM_BOLD|CFM_UNDERLINE   

    DWORD    dwEffects; // CFM_BOLD|CFM_UNDERLINE开关CFR_BOLD|CFE_UNDERLINE   

    LONG     yHeight; // 字体搞丢   

    LONG     yOffset;   

    COLORREF crTextColor; // 字体颜色  

    BYTE     bCharSet;   

    BYTE     bPitchAndFamily;  

    TCHAR    szFaceName[LF_FACESIZE];  // 字体设置  

  } CHARFORMAT;  

  例子:  

  CHARFORMAT fm = {sizeof(CHARFORMAT)};  

  fm.dwMask = CFM_FACE|CFM_SIZE|CFM_COLOR|CFM_BOLD|CFM_UNDERLINE;  

  strcpy(fm.szFaceName, "楷体—GB2312");  

  fm.crTextColor = RGB(255,0,0);  

  cf.yHeight = 200;  

  cf.dwEffects = CFE_BOLD|CFE_UNDERLINE;  

  int nLen = m_hist.GetWindowTextLength();  

  m_hist.SetSel(nLen,nLen);  

  COleDataTime time = COleDataTime::GetCurrentTime();  

  m_hist.ReplaceSel("你对XXX说:("+time.Format("%H:%M:%S")+")\r\n");  

  m_hist.SetSel(nLen, -1);  

  pRichEdit->SetSelectionCharFormat(cf);  

(2)常用函数  

  (a)可以调用CWnd::SetWindowText函数设置整个RichEidt控件的文字, 

      更多情况是调用CRichEditCtrl::ReplaceSel函数插入文字或覆盖文字  

  (b)SetDefaultCharFormat 设置所有文字格式(已经输入和将要输入)  

  (c)SetSelectionCharFormat 为选中的文字设置格式  

  (d)SetWordCharFormat  为将要输入的文字设置格式  

  (e)SetParaFormat   为当前选择的段落设置格式  

  (f)int nLen = GetWindowTextLength();  

  (g)SetSel(nLen, -1);  

(3)特别注意  

  必须在APP类的InitInstance函数中,在程序刚启动时执行全局函数AfxInitRichEdit()  

  普通编辑框内部的所有文字的颜色和字体都是统一的  

  高级编辑控件是不同文字和段落可以设置不同的字体和颜色  

  普通编辑框缺省有内置的上下文菜单,而高级编辑控件内没有上下文菜单

旋转控件和高级编辑控件

标签:gb2312   循环   bsp   new   byte   int   effect   mask   long   

原文地址:http://www.cnblogs.com/xiaobingqianrui/p/8098097.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!