經常使用
clistctrl
來顯示大量的資料
,但是總感覺焦點行的背景顏色為藍色,顯示的效果挺難看的,參考《
mfc技術內幕》這本書中的例子,自己修改了
clistctrl
的onpaint
**,把焦點行改為白色的背景,加了乙個矩形的邊框,下面實際的效果,自我感覺還不錯;
實現思路: 1、
首先呼叫
default
,讓clistctrl
自己畫
2、呼叫
getdc()
函式獲得dc
3、呼叫
getfont()
獲得當前字型 4、
使用getsubitemrect
函式獲得每乙個列的矩形大小
,然後使用
drawtext
函式把文字畫出來 5、
最後使用
rectangle
函式畫出邊框,這樣就達到了圖中的效果了
下面是主要的**
void cxlistctrl::onpaint()
//畫邊框
cpen * poldpen=dc->selectobject(m_selpen);
getitemrect(nsel,rect,lvir_bounds);
dc->selectstockobject(null_brush); //
設定null_brush
dc->rectangle(rect.left,rect.top,rect.right,rect.bottom);
dc->selectobject(poldpen);
dc->selectobject(poldbrush);
dc->selectobject(pfont);
} 在實現過程中,要注意的問題: 1、
焦點行的字型要和其他行的字型一樣 2、
每一列的對齊方式 3、
畫完焦點行的文字以後,再畫外邊框
當然,這只是乙個種效果,還可以畫出另外自己需要的效果;
美化CListCtrl中顯示的焦點行
經常使用clistctrl來顯示大量的資料,但是總感覺焦點行的背景顏色為藍色,顯示的效果挺難看的,參考 mfc技術內幕 這本書中的例子,自己修改了clistctrl的onpaint 把焦點行改為白色的背景,加了乙個矩形的邊框,下面實際的效果,自我感覺還不錯 實現思路 1 首先呼叫default,讓c...
CListCtrl非啟用狀態高亮顯示
之前遇到過,搜了半天,沒記錄,今天又遇到了,又搜了半天。當你希望開啟對話方塊時,clistctrl預設選擇一項時,這個很有用。不知道mfc為什麼這麼簡單的功能要搞這麼複雜。可能認識不夠吧,總結點是點。三個要點 一 always show selection false 總是顯示選定內容,即使控制項沒...
CListCtrl非啟用狀態高亮顯示
之前遇到過,搜了半天,沒記錄,今天又遇到了,又搜了半天。當你希望開啟對話方塊時,clistctrl預設選擇一項時,這個很有用。不知道mfc為什麼這麼簡單的功能要搞這麼複雜。可能認識不夠吧,總結點是點。三個要點 一 always show selection false 總是顯示選定內容,即使控制項沒...