List Box/Check List Box

2016-02-19 12:19 9 1 收藏

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的List Box/Check List Box教程,一起来看看吧!超容易上手~

【 tulaoshi.com - 编程语言 】

ListBox窗口用来列出一系列的文本,每条文本占一行。创建一个列表窗口可以使用成员函数:
BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );
其中dwStyle将指明该窗口的风格,除了子窗口常用的风格WS_CHILD,WS_VISIBLE外,你可以针对列表控件指明专门的风格。

LBS_MULTIPLESEL 指明列表框可以同时选择多行

LBS_EXTENDEDSEL 可以通过按下Shift/Ctrl键选择多行

LBS_SORT 所有的行按照字母顺序进行排序

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

在列表框生成后需要向其中加入或是删除行,可以利用:
int AddString( LPCTSTR lpszItem )添加行,
int DeleteString( UINT nIndex )删除指定行,
int InsertString( int nIndex, LPCTSTR lpszItem )将行插入到指定位置。
void ResetContent( )可以删除列表框中所有行。
通过调用int GetCount( )得到当前列表框中行的数量。

如果需要得到/设置当前被选中的行,可以调用int GetCurSel( )/int SetCurSel(int iIndex)。如果你指明了选择多行的风格,你就需要先调用int GetSelCount( )得到被选中的行的数量,然后int GetSelItems( int nMaxItems, LPINT rgIndex )得到所有选中的行,参数rgIndex为存放被选中行的数组。通过调用int GetLBText( int nIndex, LPTSTR lpszText )得到列表框内指定行的字符串。

此外通过调用int FindString( int nStartAfter, LPCTSTR lpszItem )可以在当前所有行中查找指定的字符传的位置,nStartAfter指明从那一行开始进行查找。
int SelectString( int nStartAfter, LPCTSTR lpszItem )可以选中包含指定字符串的行。

在MFC 4.2版本中添加了CCheckListBox类,该类是由CListBox派生并拥有CListBox的所有功能,不同的是可以在每行前加上一个检查框。必须注意的是在创建时必须指明LBS_OWNERDRAWFIXED或LBS_OWNERDRAWVARIABLE风格。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

通过void SetCheckStyle( UINT nStyle )/UINT GetCheckStyle( )可以设置/得到检查框的风格,关于检查框风格可以参考4.1 Button中介绍。通过void SetCheck( int nIndex, int nCheck )/int GetCheck( int nIndex )可以设置和得到某行的检查状态,关于检查框状态可以参考4.1 Button中介绍。

最后介绍一下列表框几种常用的消息映射宏:

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会自动列出相关的消息,并能自动产生消息映射代码。

来源:http://www.tulaoshi.com/n/20160219/1600606.html

延伸阅读
List一个有序的集合,允许元素的重复;该实现不是同步的,如果多个线程访问一个List实例,而其中至少一个线程从结构上修改了表(添加或删除元素),那么它需要保持外部同步;一般通过对自然封装该列表的对象进行同步操作来完成,如:Collections.synchronizedList()来包装列表; ArrayListList接口的大小可变数组的实现,实现了所有可选列表操...
标签: Web开发
List the Stored Procedures in a SQL Server database. Supported Platforms SQL Server 2000  Yes Script Code strDBServerName = "." strDBName = "Northwind" Set objSQLServer = CreateObject("SQLDMO.SQLServer") o...
标签: Web开发
Description Demonstration script that displays the various colors -- and their related color index -- available when programmatically controlling Microsoft Excel.  Script Code 代码如下: set objExcel&nbs...
标签: Web开发
     线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashta...
魅族box是什么?   从发布的图片来看应该是一款机顶盒产品。 魅族和乐视关系一直很密切,发布这样一款产品也不足为奇,不过土豪金的颜色倒挺惹人眼球。

经验教程

915

收藏

93
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部