日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

一步一步学List Control控件的用法(第二步)----创建第一行

發布時間:2025/7/14 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一步一步学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

指向包含新項文本字符串的指針。

說明:改變列表視圖項或子項的文本。

?

這個就很好理解了,參數很少,這個就是為了添加子項。由于是子項,需要確定添加的位置,所以肯定需要二維的坐標來確定自己的位置,所以需要兩個索引。類似于二維數組的下標。在我們的函數參數中,01,表示第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控件的用法(第二步)----创建第一行的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。