CListCtrl非啟用狀態高亮顯示

2021-09-06 08:20:58 字數 1607 閱讀 4615

之前遇到過,搜了半天,沒記錄,今天又遇到了,又搜了半天。

當你希望開啟對話方塊時,clistctrl預設選擇一項時,這個很有用。

不知道mfc為什麼這麼簡單的功能要搞這麼複雜。

可能認識不夠吧,總結點是點。

三個要點: 一、

always show selection:false

總是顯示選定內容,即使控制項沒有焦點。

view:report

二、一定要設定焦點

//設定選中第二行

m_lsttest.setfocus();

m_lsttest.setitemstate(

1,lvis_selected|lvis_focused, lvis_selected|lvis_focused);

三、響應

nm_customdraw

---------------------------------------

oninitdialog();

m_lsttest.insertcolumn(0,"

column0

");

m_lsttest.insertcolumn(1,"

column1

");

m_lsttest.setcolumnwidth(

0,80);

m_lsttest.setcolumnwidth(

1,80);

m_lsttest.insertitem(0,"

row0

");

m_lsttest.insertitem(1,"

row1

");

m_lsttest.setitemtext(

0,1,

"row01

");

m_lsttest.setitemtext(

1,1,

"row11

");

//設定選中第二行

m_lsttest.setfocus();

m_lsttest.setitemstate(

1,lvis_selected|lvis_focused, lvis_selected|lvis_focused);

nm_customdraw

void cmfcdlgdlg::onnmcustomdrawlist(nmhdr *pnmhdr, lresult *presult)

else

if ( cdds_itemprepaint == plvcd->nmcd.dwdrawstage )

else

if ( (cdds_itemprepaint | cdds_subitem) == plvcd->nmcd.dwdrawstage )

else

plvcd->clrtext = clrnewtextcolor;

plvcd->clrtextbk = clrnewbkcolor;

*presult = cdrf_dodefault;

}

}

url:

CListCtrl非啟用狀態高亮顯示

之前遇到過,搜了半天,沒記錄,今天又遇到了,又搜了半天。當你希望開啟對話方塊時,clistctrl預設選擇一項時,這個很有用。不知道mfc為什麼這麼簡單的功能要搞這麼複雜。可能認識不夠吧,總結點是點。三個要點 一 always show selection false 總是顯示選定內容,即使控制項沒...

CListCtrl 設定選中狀態

clistctrl 設定選中狀態 1.使用clistctrl的函式setitemstate int nitem,uint nstate,uint nmask 如 m list.setitemstate index,lvni focused lvis selected,lvni focused lvi...

CListCtrl行高的修改

網上修改clistctrl項高度的方法一般是擴大字型,及用將項高度撐大.這兩種方法雖然簡單,但是效果卻不是很理想.一種比較理想的方法是自畫clistctrl,不過方法相對來說比較複雜.要修改clistctrl的列表項高度,我們需要自己新增 measureitem 的訊息響應函式,對應的訊息是 wm ...