?? teach_road_45.htm
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80">
<meta name="GENERATOR" content="聞怡洋 wyy_cq@21cn.com">
<title>Visual C++/MFC開發(fā)指南</title>
<SCRIPT LANGUAGE='JavaScript' SRC='../navigate_bar.js'></SCRIPT>
<link REL="stylesheet" HREF="../main.css">
</head>
<SCRIPT LANGUAGE='JavaScript'>write_body();</SCRIPT>
<SCRIPT LANGUAGE='JavaScript'>write_bar();</SCRIPT>
<p align="center"><a
HREF="http://www.0828.com/pay/cgi-bin/random.cgi?job=go&id=820"
target="_blank">
<img SRC="http://www.0828.com/pay/cgi-bin/random.cgi?id=820" BORDER="0"
width="468" height="60"></a><br>
<font size="2"><a href="http://www.0828.com/pay/index.html"><img border="0"
src="http://www.0828.com/pay/code.gif" width="468" height="15"></a><br>
<small>你每點一下上面的廣告我就能有更多的上網(wǎng)時間為大家尋找資料</small></font>
</p>
<table width=98% cellspacing="0" cellpadding="0" align=center><!--整體框架-->
<tr><td>
<table border=0 width="100%" cellspacing="0" cellpadding="2"><!--標記放置區(qū)域-->
<tr>
<td width="30%" align="center" bgcolor="#003D84" valign=middle><img src=../img/brand_200_60.gif width=200 height=60 alt="LOGO1"></td>
<td width="70%" align="center" bgcolor="#003D84" valign=middle><img src=../img/logo_400_60.gif width=400 height=60 alt="LOGO2"></td>
</tr>
<tr>
<td colspan="2" bgcolor="#0080C0" align=center><font color=white>您當前位置</font> <a href=../index.htm><font color=white>首頁</font></a> <a href=index.htm><font color=white>開發(fā)教程</font></a> <font class=eng color=white>4.5 List Box/Check List Box</font><SCRIPT LANGUAGE='JavaScript'>write_command();</SCRIPT></font></td>
</tr>
</table><!--標記放置區(qū)域 END-->
<table border=0 width=100% cellspacing="0" cellpadding="0">
<tr>
<td><!--begin-->
<br>
<p align=center><big><font class=eng>4.5 List Box/Check List Box</font></big></p>
<table border=0 align=center width=100%>
<tr><td>
<small>
<p>ListBox窗口用來列出一系列的文本,每條文本占一行。創(chuàng)建一個列表窗口可以使用成員函數(shù):
<br>BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );
<br>其中dwStyle將指明該窗口的風格,除了子窗口常用的風格WS_CHILD,WS_VISIBLE外,你可以針對列表控件指明專門的風格。
<ul>
<li>LBS_MULTIPLESEL 指明列表框可以同時選擇多行</li>
<li>LBS_EXTENDEDSEL 可以通過按下Shift/Ctrl鍵選擇多行</li>
<li>LBS_SORT 所有的行按照字母順序進行排序</li>
</ul>
</p>
<p>在列表框生成后需要向其中加入或是刪除行,可以利用:
<br>int AddString( LPCTSTR lpszItem )添加行,
<br>int DeleteString( UINT nIndex )刪除指定行,
<br>int InsertString( int nIndex, LPCTSTR lpszItem )將行插入到指定位置。
<br>void ResetContent( )可以刪除列表框中所有行。
<br>通過調(diào)用int GetCount( )得到當前列表框中行的數(shù)量。
</p>
<p>如果需要得到/設(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)指定行的字符串。</p>
<p>此外通過調(diào)用int FindString( int nStartAfter, LPCTSTR lpszItem )可以在當前所有行中查找指定的字符傳的位置,nStartAfter指明從那一行開始進行查找。
<br>int SelectString( int nStartAfter, LPCTSTR lpszItem )可以選中包含指定字符串的行。</p>
<p>在MFC 4.2版本中添加了CCheckListBox類,該類是由CListBox派生并擁有CListBox的所有功能,不同的是可以在每行前加上一個檢查框。必須注意的是在創(chuàng)建時必須指明LBS_OWNERDRAWFIXED或LBS_OWNERDRAWVARIABLE風格。</p>
<p>通過void SetCheckStyle( UINT nStyle )/UINT GetCheckStyle( )可以設(shè)置/得到檢查框的風格,關(guān)于檢查框風格可以參考<a href=teach_road_41.htm>4.1 Button</a>中介紹。通過void SetCheck( int nIndex, int nCheck )/int GetCheck( int nIndex )可以設(shè)置和得到某行的檢查狀態(tài),關(guān)于檢查框狀態(tài)可以參考<a href=teach_road_41.htm>4.1 Button</a>中介紹。</p>
<p>最后介紹一下列表框幾種常用的消息映射宏:<ul>
<li>ON_LBN_DBLCLK 鼠標雙擊</li>
<li>ON_EN_ERRSPACE 輸入框無法分配內(nèi)存時產(chǎn)生</li>
<li>ON_EN_KILLFOCUS / ON_EN_SETFOCUS 在輸入框失去/得到輸入焦點時產(chǎn)生</li>
<li>ON_LBN_SELCHANGE 選擇的行發(fā)生改變</li>
</ul>
使用以上幾種消息映射的方法為定義原型如:afx_msg void memberFxn( );的函數(shù),并且定義形式如ON_Notification( id, memberFxn )的消息映射。如果在對話框中使用列表框,Class Wizard會自動列出相關(guān)的消息,并能自動產(chǎn)生消息映射代碼。
</p>
</small>
</td>
</tr>
<tr><td>
<small>
<p align=center><a href=index.htm#charpter4>返回</a></p>
</small>
</td></tr>
</table>
<p align=center><small>版權(quán)所有 聞怡洋 <a href=http://www.vchelp.net/>http://www.vchelp.net/</a></small></p>
</td><!--end-->
</tr>
</table>
</td></tr></table><!--整體框架 END-->
<!-- 耐特付費廣告代碼開始 不得修改. -->
<center><script language="javascript">
<!--
var date = new Date();
var ra = date.getTime() % 1000;
var ua = document.URL;
document.write("<iframe src='http://www.china-free.com/cgi-bin/ad/random.cgi?id=560' width=468 height=60 scrolling=no marginwidth=0 marginheight=0 frameborder=0 vspace=0 hspace=0 >");
document.write("<a href='http://www.china-free.com/cgi-bin/ad/random.cgi?id=560' target='_blank'>");
document.write("<img src='http://www.china-free.com/cgi-bin/ad/random.cgi?job=go&id=560' width=468 height=60 border=0></a>");
document.write("</iframe>");
//-->
</script>
<noscript>
<a target="_blank" href="http://www.china-free.com/cgi-bin/ad/random.cgi?id=560">
<img src="http://www.china-free.com/cgi-bin/ad/random.cgi?job=go&id=560" width="468" height="60" border="0"></a>
</noscript>
<br><a HREF="http://www.china-free.com/ad" target="_blank"><img SRC="http://www.china-free.com/ad/bd.gif" BORDER="0" ></a><br>
<small>你每點一下上面的廣告我就能有更多的上網(wǎng)時間為大家尋找資料</small></center>
<!-- 耐特付費廣告代碼結(jié)尾. -->
<SCRIPT LANGUAGE='JavaScript'>write_tail();</SCRIPT>
</body></html>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -