VC++之List Box/Check List Box控件

转载 2007年09月20日 11:30:00
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 )得到列表框内指定行的字符串。

此外通过调用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中介绍。

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

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

VC++ List Box控件 详解1

CListBox 如下继承关系 COBject   : CCmdTarget        : CWnd            : CListBox            *说明:下面...
  • gdliweibing
  • gdliweibing
  • 2013年05月02日 20:05
  • 1702

VC++之List Box/Check List Box控件

转自: http://www.hackbase.com/lib/2007-04-24/13149.html ListBox窗口用来列出一系列的文本,每条文本占一行。创建一个列表窗口可以使用成员函数: ...
  • robinjwong
  • robinjwong
  • 2010年09月25日 16:03
  • 403

让List Control有Check Box 和 让List Box有Check Box

1.让List Control有Check Box 用SetExtendedStyle方法可以设置,看代码:(CListCtrl m_ListCtrl;)DWORD dwStyle = m_ListC...
  • dongfangyu
  • dongfangyu
  • 2009年07月29日 10:15
  • 914

VC++之List Box/Check List Box控件(转)

ListBox窗口用来列出一系列的文本,每条文本占一行。创建一个列表窗口可以使用成员函数: BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle...
  • zzh5756712
  • zzh5756712
  • 2009年12月09日 11:41
  • 155

MFC控件(4):List Box

List Box应该是同时具有Edit Control和Combo Box的一些特性.说它像前者因为它可以把所有的内容分行显示出来(但不可编辑),所以一般起显示信息的作用.而Edit Control主...
  • weiwenhp
  • weiwenhp
  • 2013年04月03日 17:30
  • 7376

子窗口控件——列表框(List Box)

窗口类型"listbox"。默认的列表框给父窗口发送WM_COMMAND消息,所以几乎所有列表框都加LBS_NOTIFY,允许列表框发送WM_COMMAND,LBS_SORT可以让列表自动排序。LBS...
  • welson80
  • welson80
  • 2010年08月11日 22:17
  • 1889

MFC LIST BOX

声明:本人一个菜鸟,网上搜罗了很多关于VC++编程的资料,可每本资料都是涵盖面太广,难以细致。英语又太烂,所以不得意只得摸索,恐又忘记所以记在此处,若有不对的地方,烦劳指出,不胜感激。 author...
  • fym0121
  • fym0121
  • 2012年04月26日 22:18
  • 6131

List Box/Check List Box

4.5 List Box/Check List BoxListBox窗口用来列出一系列的文本,每条文本占一行。创建一个列表窗口可以使用成员函数: BOOL CListBox::Create( LPCT...
  • sotjimmy
  • sotjimmy
  • 2005年08月25日 15:20
  • 761

VC中check box的两种用法

在界面设计中,我们经常会用到Check Box这个控件,Check Box 的使用方法与Radio Button 的用法相似,但比它要简单得多。 一、设定Check Box为 选中状态 (...
  • b5w2p0
  • b5w2p0
  • 2014年03月14日 22:24
  • 1872

MFC中List box的用法

List Box应该是同时具有Edit Control和Combo Box的一些特性.说它像前者因为它可以把所有的内容分行显示出来(但不可编辑),所以一般起显示信息的作用.而Edit Control主...
  • u011672712
  • u011672712
  • 2016年06月19日 09:03
  • 1439
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC++之List Box/Check List Box控件
举报原因:
原因补充:

(最多只允许输入30个字)