国产黄色免费网站,人人干人人干人人干,免费大黄网站在线看,国产情侣一区二区三区,99精品国产福利免费一区二区,国产亚洲成归v人片在线观看,伊人88

2023信創(chuàng)獨角獸企業(yè)100強
全世界各行各業(yè)聯(lián)合起來,internet一定要實現(xiàn)!

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

2004-02-10 eNet&Ciweek

ListBox窗口用來列出一系列的文本,每條文本占一行。創(chuàng)建一個列表窗口可以使用成員函數(shù):

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( )可以刪除列表框中所有行。
通過調(diào)用int GetCount( )得到當前列表框中行的數(shù)量。

如果需要得到/設置當前被選中的行,可以調(diào)用int GetCurSel( )/int SetCurSel(int iIndex)。如果你指明了選擇多行的風格,你就需要先調(diào)用int GetSelCount( )得到被選中的行的數(shù)量,然后int GetSelItems( int nMaxItems, LPINT rgIndex )得到所有選中的行,參數(shù)rgIndex為存放被選中行的數(shù)組。通過調(diào)用int GetLBText( int nIndex, LPTSTR lpszText )得到列表框內(nèi)指定行的字符串。

此外通過調(diào)用int FindString( int nStartAfter, LPCTSTR lpszItem )可以在當前所有行中查找指定的字符傳的位置,nStartAfter指明從那一行開始進行查找。

int SelectString( int nStartAfter, LPCTSTR lpszItem )可以選中包含指定字符串的行。

在MFC 4.2版本中添加了CCheckListBox類,該類是由CListBox派生并擁有CListBox的所有功能,不同的是可以在每行前加上一個檢查框。必須注意的是在創(chuàng)建時必須指明LBS_OWNERDRAWFIXED或LBS_OWNERDRAWVARIABLE風格。

通過void SetCheckStyle( UINT nStyle )/UINT GetCheckStyle( )可以設置/得到檢查框的風格,關于檢查框風格可以參考4.1 Button中介紹。通過void SetCheck( int nIndex, int nCheck )/int GetCheck( int nIndex )可以設置和得到某行的檢查狀態(tài),關于檢查框狀態(tài)可以參考4.1 Button中介紹。

最后介紹一下列表框幾種常用的消息映射宏:

ON_LBN_DBLCLK 鼠標雙擊
ON_EN_ERRSPACE 輸入框無法分配內(nèi)存時產(chǎn)生
ON_EN_KILLFOCUS / ON_EN_SETFOCUS 在輸入框失去/得到輸入焦點時產(chǎn)生
ON_LBN_SELCHANGE 選擇的行發(fā)生改變
使用以上幾種消息映射的方法為定義原型如:afx_msg void memberFxn( );的函數(shù),并且定義形式如ON_Notification( id, memberFxn )的消息映射。如果在對話框中使用列表框,Class Wizard會自動列出相關的消息,并能自動產(chǎn)生消息映射代碼。

相關頻道: eNews

您對本文或本站有任何意見,請在下方提交,謝謝!

投稿信箱:tougao@enet16.com