我有列表框CListBox
其中我需要根據某些條件指定單個列表項的顏色。我怎樣才能做到這一點。我運行VS2005。 該應用程序是一個基於WTL對話框的應用程序。如何在VC++中指定單個列表項的字體顏色WTL
1
A
回答
2
您可以創建自己的列表框(例如:CColorListBox)
ColorListBox.h
class CColorListBox : public CListBox
{
// Construction
public:
CColorListBox();
// Attributes
public:
// Operations
public:
int AddString(LPCTSTR lpszItem, COLORREF rgb);
int InsertString(int nIndex, LPCTSTR lpszItem, COLORREF rgb);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CColorListBox)
public:
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CColorListBox();
// Generated message map functions
protected:
//{{AFX_MSG(CColorListBox)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
ColorListBox.cpp
這裏是一個想法沒有確切的代碼... .........
int CColorListBox::AddString(LPCTSTR lpszItem,COLORREF rgb)
{
int item = AddString(lpszItem);
if(item >=0)
SetItemData(item,rgb);
return item;
}
int CColorListBox::InsertString(int nIndex, LPCTSTR lpszItem, COLORREF rgb)
{
int item = ((CListBox*)this)->InsertString(nIndex,lpszItem);
if(item >=0)
SetItemData(item,rgb);
return item;
}
void CColorListBox::DrawItem(LPDRAWITEMSTRUCT lpdis)
{
}
+0
我明白了。但我需要的是實施。似乎沒有什麼與WTL合作。 **所以我需要一個精確的代碼來設置WTL列表框中的列表項顏色。** –
0
這是我在ListViewCtrl
中實現相同的功能。
我寫了一個類來擴展CListViewCtrl
。
class CListViewCtrlEx: public CWindowImpl<CListViewCtrlEx, CListViewCtrl>, public CCustomDraw<CListViewCtrlEx>
{
public:
BEGIN_MSG_MAP(CListViewCtrlEx)
MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd)
CHAIN_MSG_MAP_ALT(CCustomDraw<CListViewCtrlEx>, 1)
DEFAULT_REFLECTION_HANDLER()
END_MSG_MAP()
LRESULT OnEraseBkgnd(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL bHandled);
DWORD OnPrePaint(int /*idCtrl*/, LPNMCUSTOMDRAW lpNMCustomDraw);
DWORD OnItemPrePaint(int /*idCtrl*/, LPNMCUSTOMDRAW lpNMCustomDraw);
void ForceMeasureItemMessage();
void DeleteItem(LPDELETEITEMSTRUCT /*lpDeleteItemStruct*/);
BOOL DeleteItem(int nItem);
void GetCellRect(int header_column, const CRect& item_rect, CRect& cell_rect);
};
完整的代碼是HERE。
相關問題
- 1. 如何更改列表框中項目的字體顏色(wpf)
- 2. 更改單個列表項的顏色
- 3. 如何更改列表視圖項的字體顏色
- 4. 如何在顏色狀態列表資源中指定背景顏色?
- 5. 更改列表視圖中的指定項目的顏色android
- 6. 爲組合框中的列表項懸停的字體顏色
- 7. 如何覆蓋特定區域的列表項文字顏色?
- 8. 如何更改選定選項中的字體顏色?
- 9. 如何在列表視圖中爲特定列設置字體顏色?
- 10. 更改Firefox中表單的字體顏色選擇選項
- 11. 如何在創建字體顏色後更改字體顏色
- 12. 如何更改sencha觸摸中的列表項的字體大小和顏色
- 13. 禁用列表框的字體顏色
- 14. 如何爲ActionbarTab更改選定的選項卡顏色或字體顏色?
- 15. 如何爲awk printf列指定顏色?
- 16. 生成一個指定了背景顏色和字體顏色的按鈕
- 17. 在WordPress中指定TinyMCE編輯器的字體顏色?
- 18. 如何在matplotlib.pyplot.trisurf中指定顏色
- 19. 如何在配置中指定顏色
- 20. 顏色指定字母和單詞
- 21. 更改特定覈對清單項目的字體或顏色?
- 22. 自定義列表項的顏色android_simple_listitem
- 23. 如何在DataGridView中設置單元格的字體顏色?
- 24. 列表項的字體顏色不正確地從CSS
- 25. 如何更改列表視圖中列表項的顏色
- 26. 如何用指定的顏色填充ccsprite中的顏色?
- 27. 爲單個行號指定顏色
- 28. 如何從UITableViewRowAction更改特定單元格的字體顏色?
- 29. 如何顏色列表框項目?
- 30. 如何1個添加背景顏色列表中的項目
你需要讓它自己畫出我認爲。 –
你能解釋一個例子或鏈接嗎? Im新到WTL。 –