资源描述
静态文本控件风格
精品文档
静态文本控件的功能比较简单,可作为显示字符串,VC++之Static Box控件,图标,位图用,SS_BITMAP 显示位图SS_ICON 显示图标SS_CENTERIMAGE 图象居中显示控制显示的文本利用成员函数SetWindowText/GetWindowText用于设置/得到当前显示的文本,控制显示的图标利用成
静态文本控件的功能比较简单,可作为显示字符串,图标,位图用。创建一个窗口可以使用成员函数:
BOOL CStatic::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );
其中dwStyle将指明该窗口的风格,除了子窗口常用的风格WS_CHILD,WS_VISIBLE外,你可以针对静态控件指明专门的风格。
SS_CENTER,SS_LEFT,SS_RIGHT 指明字符显示的对齐方式。
SS_GRAYRECT 显示一个灰色的矩形
SS_NOPREFIX 如果指明该风格,对于字符&将直接显示,否则&将作为转义符,&将不显示而在其后的字符将有下划线,如果需要直接显示&必须使用&&表示。
SS_BITMAP 显示位图
SS_ICON 显示图标
SS_CENTERIMAGE 图象居中显示
控制显示的文本利用成员函数SetWindowText/GetWindowText用于设置/得到当前显示的文本。
控制显示的图标利用成员函数SetIcon/GetIcon用于设置/得到当前显示的图标。
控制显示的位图利用成员函数SetBitmap/GetBitmap用于设置/得到当前显示的位图。下面一段代码演示如何创建一个显示位图的静态窗口并设置位图
CStatic* pstaDis=new CStatic;
pstaDis->Create("",WS_CHILD WS_VISIBLE SS_BITMAP SSCENTERIMAGE,CRect(0,0,40,40),pWnd,1);
CBitmap bmpLoad;
bmpLoad.LoadBitmap(IDB_TEST);
pstaDis->SetBitmap(bmpLoad.Detach());
(LPCTSTRlpszText,DWORDdwStyle,constRECT&rect,CWnd*pParentWnd,UINTnID=0xffff);
其中dwStyle将指明该窗口的风格,除了子窗口常用的风格WS_CHILD,WS_VISIBLE外,你可以针对列表控件指明专门的风格。
LBS_MULTIPLESEL指明列表框可以同时选择多行
LBS_EXTENDEDSEL可以通过按下Shift/Ctrl键选择多行
LBS_SORT所有的行按照字母顺序进行排序
在列表框生成后需要向其中加入或是删除行,可以利用:
intAddString(LPCTSTRlpszItem)添加行,
intDeleteString(UINTnIndex)删除指定行,
intInsertString(intnIndex,LPCTSTRlpszItem)将行插入到指定位置。
voidResetContent()可以删除列表框中所有行。
通过调用intGetCount()得到当前列表框中行的数量。
如果需要得到/设置当前被选中的行,可以调用intGetCurSel()/intSetCurSel(intiIndex)。如果你指明了选择多行的风格,你就需要先调用intGetSelCount()得到被选中的行的数量,然后intGetSelItems(intnMaxItems,LPINTrgIndex)得到所有选中的行,参数rgIndex为存放被选中行的数组。通过调用intGetLBText(intnIndex,LPTSTRlpszText)得到列表框内指定行的字符串。
此外通过调用intFindString(intnStartAfter,LPCTSTRlpszItem)可以在当前所有行中查找指定的字符传的位置,nStartAfter指明从那一行开始进行查找。
intSelectString(intnStartAfter,LPCTSTRlpszItem)可以选中包含指定字符串的行。
在MFC4.2版本中添加了CCheckListBox类,该类是由CListBox派生并拥有CListBox的所有功能,不同的是可以在每行前加上一个检查框。必须注意的是在创建时必须指明LBS_OWNERDRAWFIXED或LBS_OWNERDRAWVARIABLE风格。
通过voidSetCheckStyle(UINTnStyle)/UINTGetCheckStyle()可以设置/得到检查框的风格。通过voidSetCheck(intnIndex,intnCheck)/intGetCheck(intnIndex)可以设置和得到某行的检查状态,。
最后介绍一下列表框几种常用的消息映射宏:
ON_LBN_DBLCLK鼠标双击
ON_EN_ERRSPACE输入框无法分配内存时产生
ON_EN_KILLFOCUS/ON_EN_SETFOCUS在输入框失去/得到输入焦点时产生
ON_LBN_SELCHANGE选择的行发生改变
使用以上几种消息映射的方法为定义原型如:afx_msgvoidmemberFxn();的函数,并且定义形式如ON_Notification(id,memberFxn)的消息映射。如果在对话框中使用列表框,ClassWizard会自动列出相关的消息,并能自动产生消息映射代码。
收集于网络,如有侵权请联系管理员删除
展开阅读全文