一步一步学List Control控件的用法(第二步)----创建第一行
第二步? 創建第一行
?
1、? 在上一節中我們創建了一個列,那我們可以按照同樣的方法多創建幾個列。在
???? m_ListCtrl.InsertColumn(0, _T("姓名"), LVCFMT_LEFT, 90);
???? 代碼后邊添入下列三行代碼:
???????? m_ListCtrl.InsertColumn(1,_T("性別"),LVCFMT_LEFT,40);
???????? m_ListCtrl.InsertColumn(2,_T("聯系方式"),LVCFMT_LEFT,160);
m_ListCtrl.InsertColumn(3,_T("備注"),LVCFMT_LEFT,180);
大家可以發現,只有第一個參數和最后一個參數不同,這兩個參數的作用在上一節我們也介紹過了。第一個參數是新建列的索引值,是從0開始的,也就是說第一列的索引值是0,第二列的索引值是1,第三列的索引值是2,以此類推,是不是很像數組的下表啊?
2、? 大家可以運行下看看結果,會出現4個列,列名分別為:姓名,性別,聯系方式,備注。
3、? 既然我們已經創建好了列,那我們來創建行吧。
4、? 首先要知道List Control在顯示為Report樣式時,主項為第一項,后面緊跟著的為子項。主項和子項的數據寫入不同,這將在后面提到。所以說,在我們的例子當中姓名就是主項了,而其余的項就都是子項了。
5、? 在我們剛才添加的代碼后邊繼續添加代碼:
m_ListCtrl.InsertItem(0,_T("王二小"));
這里我們來看下這個函數的定義:
int InsertItem(const LVITEM* pItem)
int InsertItem(int nItem,LPCTSTR lpszItem)
int InsertItem(int nItem, LPCTSTR lpszItem,int nImage)
int InsertItem(UINT nMask,
???????????????int nItem,
???????????????LPCTSTR lpszItem,
???????????????UINT nState,
???????????????UINT nStateMask,
???????????????int nImage,
???????????????LPARAM lParam
??????????????)
返回值:
如果成功,則返回新建列的索引值,否則為-1。
參數:
| pItem | 指向指定項屬性LVITEM結構的指針,如聯機文檔“平臺SDK”中所述。 |
| nItem | 被插入項的索引值。 |
| lpszItem | 包含項標簽的字符串的地址,或當項為回調項時,該變量為LPSTR_TEXT CALLBACK。要了解更多有關回調項的信息,請參閱CListCtrl::GetCall backMask. |
| nImage | 項圖象的索引值,或當項為回調項時,該變量為I_IMAGECALLBACK。要了解更多有關回調項的信息,請參閱CListCtrl::GetCallbackMask |
| nMask | 參數nMask指定了哪個項屬性作為參數傳遞是有效的。它可以是聯機文檔“平臺SDK” 中LVITEM結構所描述的一個或多個掩碼值。有效的數據能夠通過位與運算來組合。 |
| nState | 指示項的狀態、狀態圖象及輪廓圖象。請參閱聯機文檔“平臺SDK”中的LVITEM來獲取更多信息,并參閱有效標志列表中的列表視圖項狀態。 |
| nStateMask | 指示狀態成員中的哪一位將被獲取或修改。請參閱聯機文檔“平臺SDK”中的LVITEM來獲取更多信息。 |
| nImage | 圖象列表之內項的圖象的索引。 |
| lParam | 與項相關聯的應用指定的32位值。如果該參數被指定,那么必須設置nMask的屬性為LVIF_PARAM。 |
說明:向列表視圖控件中新插入一項。
?
很顯然,我們采用的是第二個函數,具有三個參數的函數。
6、? 我們這行代碼的作用就是,插入主項:王二小,即在第一行第一列姓名中添加了王二小。
7、? 那我們要如何插入子項呢?我們繼續添加代碼如下:
m_ListCtrl.SetItemText(0,1,_T("男"));
我們先來看下這個函數的定義:
?
BOOL SetItemText(int nItem,int nSubItem,LPTSTR lpszText)
返回值:如果成功,則返回非零值,否則為0。
參數:
| nItem | 要設定文本項的索引值。 |
| nSubItem | 子項的索引,若為零,則設置項標簽。 |
| lpszText | 指向包含新項文本字符串的指針。 |
說明:改變列表視圖項或子項的文本。
?
這個就很好理解了,參數很少,這個就是為了添加子項。由于是子項,需要確定添加的位置,所以肯定需要二維的坐標來確定自己的位置,所以需要兩個索引。類似于二維數組的下標。在我們的函數參數中,0,1,表示第1行第2列,而男就是要添加的內容了。
8、? 我們按照這個方法繼續添加代碼如下:
???? ???? m_ListCtrl.SetItemText(0,2,_T("15888888888"));
m_ListCtrl.SetItemText(0,3,_T("兒童團"));
9、? 調試程序,我們將可以看到具有完整的一行數據的結果。如下圖:
10、同樣,我們可以采取同樣的方法,創建添加多行數據。
轉載于:https://www.cnblogs.com/ainima/archive/2010/03/17/6332037.html
總結
以上是生活随笔為你收集整理的一步一步学List Control控件的用法(第二步)----创建第一行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【邮件】生产数据库优化第一步:重建索引
- 下一篇: QCon 2010(InfoQ北京敏捷大