List Box/Check List Box

2016-02-19 12:19 4 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 所有的行按照字母顺序进行排序

在列表框生成后需要向其中加入或是删除行,可以利用:
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 )得到列表框内指定行的字符串。

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

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

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

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

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

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

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

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

延伸阅读
标签: 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...
Ice Box 把耗电应用冰冻起来 Android 系统越来越流畅,用户体验在慢慢改善,但是耗电却始终是个棘手的问题。虽然大部分应用能够「守本分」,但是总有那么一小撮应用,即使退出了之后还「阴魂不散」,偷偷的在后台蚕食你手机宝贵的电量。眼看 Android 6.0 的 Doze 模式依旧遥远,是时候找一个「冰箱」把那些耗电大户「冻」起来了。 ...
标签: Web开发
     线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashta...
魅族box是什么?   从发布的图片来看应该是一款机顶盒产品。 魅族和乐视关系一直很密切,发布这样一款产品也不足为奇,不过土豪金的颜色倒挺惹人眼球。

经验教程

340

收藏

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