MFC中ListCtrl使用說明

2021-06-11 16:16:20 字數 1704 閱讀 7496

listctrl在mfc的對話方塊中經常會使用,下面講解listctrl的一些使用方法,僅供參考。

假設m_list用來表示乙個clistctrl的類物件,並且把listctrl設定為report形式。

1)  設定風格

report方式下幾個擴充套件風格

lvs_ex_fullrowselect  選擇整行

lvs_ex_gridlines       行與行之間有分割線

lvs_ex_infotip         子item字元顯示不下時自動出現tooltip

lvs_ex_checkboxes     前面加上checkbox單選框

設定全行選擇,網格線的例項:

dword dwstyle =m_list.getextendedstyle();

dwstyle |=lvs_ex_fullrowselect;//選中某行使整行高亮(只適用與report風格)

dwstyle |= lvs_ex_gridlines;       //網格線(只適用與report風格)

dwstyle |=lvs_ex_checkboxes;  //item前生成checkbox控制項

m_list.setextendedstyle(dwstyle);//設定擴充套件風格

如果設定lvs_ex_checkboxes時,使用boolgetcheck(int nitem) const;函式檢查某行是否checked,或者使用m_list.getitemstate(nitem, lvis_selected)函式。

設定lvs_showselalways選項,它會一直選中某個item。

2)  插入資料

// 插入列的頭部資訊

m_list.insertcolumn(0, 「檔名」, lvcfmt_left);

// 調整列寬

m_list.setcolumnwidth(0, 100);

m_list.insertcolumn(1, 「裝置型別」, lvcfmt_center,100);

m_list.insertcolumn(2, 「專案名稱」, lvcfmt_center,100);

// 插入資料

int index = m_list.getitemcount();

m_list.insertitem(index, 「file name」);

m_list.setitemtext(index, 1, 「device type」);

m_list.setitemtext(index, 2, 「project name」);

3)  刪除所有資料

// 刪除列的頭部,注意需要從後往前刪除,否則會出錯

for (int index = m_list.getitemcount(); index >= 0;index++) {

m_list.deletecolumn(index);

// 刪除所有的列表項

m_list.deleteallitems();

選中或者取消選中行

int index = 0;

// 選中index所在行

m_list.setitemstate(index,lvis_selected | lvis_focused,lvis_selected | lvis_focused);

//取消選中

m_list.setitemstate(index, 0, lvis_selected | lvis_focused);

MFC中listctrl的使用

右鍵選單 void cstudentmngdlg onnmrclickstudentlist nmhdr pnmhdr,lresult presult presult 0 item切換焦點時 包括用鍵盤和滑鼠切換item時 狀態的一些變化順序 void cstudentmngdlg onlvnite...

ListCtrl控制項的使用

list contrl控制項的使用 1.建立基於對話方塊的應用程式,布置介面,設定屬性。注意新增的是listctrl控制項,不是listbox控制項,在控制項工具箱的倒數第五行list control控制項。屬性中設定styles標籤中的檢視屬性為report,是乙個多列列表顯示。2.設定控制項變數...

MFC之給ListCtrl控制項新增一行

我使用的控制項listctrl的名字在vs2008中顯示的 名字為list box,如下圖所示 注 我設定listctrl控制項的風格為report 給其新增列標題和一行資料的 如下 m list.insertcolumn 0,t 第n輪 lvcfmt left,100 m list.insertc...