旋转控件和高级编辑控件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了旋转控件和高级编辑控件相关的知识,希望对你有一定的参考价值。

一. 旋转控件 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()  

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

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

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

以上是关于旋转控件和高级编辑控件的主要内容,如果未能解决你的问题,请参考以下文章

RecyclerView高级控件-附实例android专题

Android高级控件--AdapterView与Adapter

MFC 旋转/编辑控件

求一文本编辑器控件

高级控件

Android高级控件——ListView绑定CheckBox实现全选,添加和删除等功能