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...