MFC ListControl 具體操作詳細用法

2021-06-11 19:41:49 字數 2441 閱讀 1381

1、listcontrol初始化

listcontrol初始化**新增在虛函式cdlg***::oninitdialog()中:

m_mylist.modifystyle(0l,lvs_showselalways);

dword dwstyle = m_mylist.getextendedstyle();

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

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

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

m_mylist.setextendedstyle(dwstyle);

//設定列標題

m_mylist.insertcolumn(0,_t(""));

m_mylist.insertcolumn(1,_t("編號"),lvcfmt_cencter,80);

m_mylist.insertcolumn(2,_t("名稱"),lvcfmt_left,100);

m_mylist.insertcolumn(3,_t("單價"),lvcfmt_right,80);

......

//insertcolumn第三個引數可設定為lvcfmt_left, lvcfmt_right, or lvcfmt_center

//解決第一列始終靠左的問題

m_mylist.deletecolumn(0);

2、在listcontrol中插入資料

int nitem = m_datalist.getitemcount();	//獲得列表行數

m_mylist.insertitem(nitem, _t("data"));

m_mylist.setitemtext(nitem, 1, cstring);

m_mylist.setitemtext(nitem, 2, cstring);

//......

3、刪除選中項(包括多選)

void dialog***::onbnclickeddelete()

else

}}

4、左鍵單擊訊息響應函式

給listcontrol控制項新增名為nm_click的訊息響應函式

begin_message_map(cdlg***, cdialog)

on_notify(nm_click, idc_list, &cdlg***::onnmclicklist)

end_message_map()

若編譯出錯在nmitemactivate後新增*

void cdlg***::onnmclicklist(nmhdr *pnmhdr, lresult *presult)

5、單擊列表頭實現按相應列排序

從clistctrl繼承乙個新類csortlist

class csortlist : public clistctrl

;csortlist::csortlist()

: clistctrl()

csortlist::~csortlist()

{}

在對話方塊類中為clistctrl控制項新增成員變數

csortlist m_datalist;

新增訊息相應函式

afx_msg void onlvncolumnclickdatalist(nmhdr *pnmhdr, lresult *presult);

begin_message_map(dialog***, cdialog)

on_notify(lvn_columnclick, idc_datalist, &dialogc10::onlvncolumnclickdatalist)

end_message_map()

void dialog***::onlvncolumnclickdatalist(nmhdr *pnmhdr, lresult *presult)

else

m_datalist.sortitems(mycompareproc, (dword)&m_datalist);//呼叫排序處理函式mycompareproc

*presult = 0;

} 新增相應處理函式

static int callback mycompareproc(lparam lparam1, lparam lparam2, lparam lparamsort)

MFC List Control控制項

list control 控制項一共有四種呈現的方式 大圖示 小圖示 列表和報表形式 列表沒有表頭,報表形式有表頭 protected cimagelist m imagelist 新增變數可顯示 初始化m list.insertcolumn 0,l 第一列 lvcfmt left,100 m li...

MFC list Control 控制項設定

m listprocess m listmodule是相應的控制項變數,首先列表屬性要選擇report crect rect1,rect2 獲取程式語言列表檢視控制項的位置和大小 m listprocess.getclientrect rect1 m listmodule.getclientrect...

MFC List Control的用法總結

list control是mfc中經常用到的控制項,但是可惜該控制項並不支援鍵盤輸入 新增各種控制項 button combobox.等功能,說白了基本功能就是乙個用於顯示資料的 性質控制項。那麼,對於鍵盤輸入的支援以及控制項的新增等功能具體如何實現,在下文中一一詳述。一 基本的使用 1.初始化風格...