ListCtrl控件 列表中顯示顏色的實現


對於ListCtrl控件表格中數據顏色的問題,糾結了很久,基類CListCtrl是沒有設置列表中顏色的函數的。在網上找了一些源代碼案例來學習,從其中找到了一個比較好的實現方法。

1.利用ListCtrl派生類實現列表顏色設置

最開始是這篇文章:http://www.vckbase.com/document/viewdoc/?id=891    方法還是不錯的,但恕我無能,派生類的對象不能實現基類的一些函數功能。解決不了這個問題,果斷找其他方法

下面這個,這是在VC知識庫中找到的,鏈接:http://www.vckbase.com/document/viewdoc/?id=1855   感謝這位大神,讓我這菜鳥得以解決問題,也不影響基類方法的使用。而且功能比較全,實現了設置各種顏色的方法,這正是我需要的,對於原作者只能膜拜!

使用方法如下:

把HeaderCtrlCl.h, HeaderCtrlCl.cpp, ListCtrlCl.h, ListCtrlCl.cpp添加到你的工程中,在拖一個CListCtrl控件到對話框上,添加成員變量,然后在頭文件中#include “ListCtrlCl.h”,把剛添加的成員變量類型改為 CListCtrlCl ,函數使用如下

m_ListCtrl.SetColColor(0,RGB(10,150,20)); //設置列背景色
m_ListCtrl.SetColColor(2,RGB(30,100,90)); //設置列背景色
m_ListCtrl.SetBkColor(RGB(50,10,10));        //設置背景色
m_ListCtrl.SetItemColor(1,1,RGB(100,100,10)); //設置指定單元背景色
m_ListCtrl.SetRowHeigt(25);               //設置行高度
m_ListCtrl.SetHeaderHeight(1.5);          //設置頭部高度
m_ListCtrl.SetHeaderFontHW(16,0);   //設置頭部字體高度,和寬度,0表示缺省,自適應 
m_ListCtrl.SetHeaderTextColor(RGB(255,200,100)); //設置頭部字體顏色
m_ListCtrl.SetTextColor(RGB(0,255,255));  //設置文本顏色
m_ListCtrl.SetHeaderBKColor(100,255,100,8); //設置頭部背景色
m_ListCtrl.SetFontHW(15,0);               //設置字體高度,和寬度,0表示缺省寬度
m_ListCtrl.SetColTextColor(2,RGB(255,255,100)); //設置列文本顏色
m_ListCtrl.SetItemTextColor(3,1,RGB(255,0,0));  //設置單元格字體顏色

2.利用Custom Draw

這是兩篇比較好的文章

http://dqifa.blog.163.com/blog/static/49258365200822014152284/    對結構和參數講得比較詳細

http://laokaddk.blog.51cto.com/368606/203390/    對Custom Draw的使用講的很詳細

但上面只講了實現某列和某行的顏色設置,如果想要是列表中具體某一項顏色變化呢?要怎么實現呢,由於時間關系,我沒深究Custom Draw的使用,因此就此擱淺,哪位看官有可以實現的方法不妨告知小弟。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM