vc 6.0 ListBox(来源eNet硅…
来源:互联网 发布:状态空间 知乎 编辑:程序博客网 时间:2024/05/17 00:08
原文地址:6.0 ListBox(来源eNet硅谷动力)">vc 6.0 ListBox(来源eNet硅谷动力) 作者:wto_9864
ListBox窗口用来列出一系列的文本,每条文本占一行。创建一个列表窗口可以使用成员函数:
BOOL CListBox::Create( LPCTSTR lpszText, DWORDdwStyle, const RECTamp; rect,CWnd* pParentWnd, UINT nID = 0xffff );
其中dwStyle将指明该窗口的风格,除了子窗口常用的风格WS_CHILD,WS_VISIBLE外,你可以针对列表控件指明专门的风格。
LBS_MULTIPLESEL 指明列表框可以同时选择多行
LBS_EXTENDEDSEL 可以通过按下Shift/Ctrl键选择多行
LBS_SORT 所有的行按照字母顺序进行排序
在列表框生成后需要向其中加入或是删除行,可以利用:
int AddString( LPCTSTR lpszItem )添加行,
int DeleteString( UINT nIndex )删除指定行,
int InsertString( int nIndex, LPCTSTR lpszItem)将行插入到指定位置。
void ResetContent( )可以删除列表框中所有行。
通过调用int GetCount( )得到当前列表框中行的数量。
如果需要得到/设置当前被选中的行,可以调用int GetCurSel( )/int SetCurSel(intiIndex)。如果你指明了选择多行的风格,你就需要先调用int GetSelCount()得到被选中的行的数量,然后int GetSelItems( int nMaxItems, LPINT rgIndex)得到所有选中的行,参数rgIndex为存放被选中行的数组。通过调用int GetLBText( int nIndex, LPTSTRlpszText )得到列表框内指定行的字符串。
此外通过调用int FindString( int nStartAfter, LPCTSTR lpszItem)可以在当前所有行中查找指定的字符传的位置,nStartAfter指明从那一行开始进行查找。
int SelectString( int nStartAfter, LPCTSTR lpszItem)可以选中包含指定字符串的行。
在MFC4.2版本中添加了CCheckListBox类,该类是由CListBox派生并拥有CListBox的所有功能,不同的是可以在每行前加上一个检查框。必须注意的是在创建时必须指明LBS_OWNERDRAWFIXED或LBS_OWNERDRAWVARIABLE风格。
通过void SetCheckStyle( UINT nStyle )/UINT GetCheckStyle()可以设置/得到检查框的风格。通过void SetCheck( int nIndex, int nCheck )/intGetCheck( int nIndex )可以设置和得到某行的检查状态
最后介绍一下列表框几种常用的消息映射宏:
ON_LBN_DBLCLK 鼠标双击
ON_EN_ERRSPACE 输入框无法分配内存时产生
ON_EN_KILLFOCUS / ON_EN_SETFOCUS 在输入框失去/得到输入焦点时产生
ON_LBN_SELCHANGE 选择的行发生改变
使用以上几种消息映射的方法为定义原型如:afx_msg void memberFxn();的函数,并且定义形式如ON_Notification( id, memberFxn)的消息映射。如果在对话框中使用列表框,Class Wizard会自动列出相关的消息,并能自动产生消息映射代码。
BOOL CListBox::Create( LPCTSTR lpszText, DWORDdwStyle, const RECTamp; rect,CWnd*
其中dwStyle将指明该窗口的风格,除了子窗口常用的风格WS_CHILD,WS_VISIBLE外,你可以针对列表控件指明专门的风格。
LBS_MULTIPLESEL 指明列表框可以同时选择多行
LBS_EXTENDEDSEL 可以通过按下Shift/Ctrl键选择多行
LBS_SORT 所有的行按照字母顺序进行排序
在列表框生成后需要向其中加入或是删除行,可以利用:
int AddString( LPCTSTR lpszItem )添加行,
int DeleteString( UINT nIndex )删除指定行,
int InsertString( int nIndex, LPCTSTR lpszItem)将行插入到指定位置。
void ResetContent( )可以删除列表框中所有行。
通过调用int GetCount( )得到当前列表框中行的数量。
如果需要得到/设置当前被选中的行,可以调用int GetCurSel( )/int SetCurSel(intiIndex)。如果你指明了选择多行的风格,你就需要先调用int GetSelCount()得到被选中的行的数量,然后int GetSelItems( int nMaxItems, LPINT rgIndex)得到所有选中的行,参数rgIndex为存放被选中行的数组。通过调用int GetLBText( int nIndex, LPTSTRlpszText )得到列表框内指定行的字符串。
此外通过调用int FindString( int nStartAfter, LPCTSTR lpszItem)可以在当前所有行中查找指定的字符传的位置,nStartAfter指明从那一行开始进行查找。
int SelectString( int nStartAfter, LPCTSTR lpszItem)可以选中包含指定字符串的行。
在MFC4.2版本中添加了CCheckListBox类,该类是由CListBox派生并拥有CListBox的所有功能,不同的是可以在每行前加上一个检查框。必须注意的是在创建时必须指明LBS_OWNERDRAWFIXED或LBS_OWNERDRAWVARIABLE风格。
通过void SetCheckStyle( UINT nStyle )/UINT GetCheckStyle()可以设置/得到检查框的风格。通过void SetCheck( int nIndex, int nCheck )/intGetCheck( int nIndex )可以设置和得到某行的检查状态
最后介绍一下列表框几种常用的消息映射宏:
ON_LBN_DBLCLK 鼠标双击
ON_EN_ERRSPACE 输入框无法分配内存时产生
ON_EN_KILLFOCUS / ON_EN_SETFOCUS 在输入框失去/得到输入焦点时产生
ON_LBN_SELCHANGE 选择的行发生改变
使用以上几种消息映射的方法为定义原型如:afx_msg void memberFxn();的函数,并且定义形式如ON_Notification( id, memberFxn)的消息映射。如果在对话框中使用列表框,Class Wizard会自动列出相关的消息,并能自动产生消息映射代码。
0 0
- vc 6.0 ListBox(来源eNet硅…
- 【VC++ 程序共享】 游戏…
- 在VC中already defined in *…
- win7 64位 VC 2010…
- VBA LISTBOX初始化代码
- C++ C# VC VC.net以及VC++有…
- vc 显示文字 图片
- JNI VC DLL
- 集线器 交换机 路由器 网桥 …
- 科技英语翻译的几点感想 来源…
- 使用BBED修改SCN …
- vc中Error spawning cl.…
- VC 2005 解决方案的目录…
- vc bmp对象与Opencv Iplimage对象…
- vc bmp对象与Opencv Iplimage对象…
- vs2010 vc++ 统一修改所…
- Rational Quantify 使用时VC项目参…
- Hive安装 …
- 动态控件
- 控件与父窗口消息传递
- 对话框(模态与非模态)
- 对话框数据交换和验证
- 基于线程的二维刀削程序
- vc 6.0 ListBox(来源eNet硅…
- VC里使用皮肤美化工具:SkinM…
- MFC &&用SkinMagicBuilder制…
- TCPAPI网络通信(一个服务器对一个…
- 人不要脸,天下无敌
- 秦时明月
- AfxInitRichEdit()
- powerbuilder操作excel命令大全
- wince简介