Windows 界面:OnCustomDraw 设置 CListCtrol 任意行的文本字体颜色以及背景色
2008-01-30 17:57
627 查看
1,首先使用 ClassWizard 建立一个 CListCtrl 的派生类,在它的头文件消息响应函数中添加:
// Generated message map functions
protected:
//{{AFX_MSG(CScanFileList) //}}AFX_MSG
afx_msg void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);
DECLARE_MESSAGE_MAP()
2,相应的,类实现文件添加:
BEGIN_MESSAGE_MAP(CScanFileList, CListCtrlEx)
//{{AFX_MSG_MAP(CScanFileList)
...
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
...
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
3,函数实现:
void CScanFileList::OnCustomDraw ( NMHDR* pNMHDR, LRESULT* pResult )
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );
// Take the default processing unless we
// set this to something else below.
*pResult = CDRF_DODEFAULT;
// First thing - check the draw stage. If it's the control's prepaint
// stage, then tell Windows we want messages for every item.
if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage )
{
// 这里仅仅比较文本,注意:index == pLVCD->nmcd.dwItemSpec
if (GetItemText(pLVCD->nmcd.dwItemSpec, 2) == m_lpszEncrypt)
{
pLVCD->clrText = RGB(255,0,0);
pLVCD->clrTextBk = RGB(255,0,0);
}
// Tell Windows to paint the control itself.
*pResult = CDRF_DODEFAULT;
}
}
// Generated message map functions
protected:
//{{AFX_MSG(CScanFileList) //}}AFX_MSG
afx_msg void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);
DECLARE_MESSAGE_MAP()
2,相应的,类实现文件添加:
BEGIN_MESSAGE_MAP(CScanFileList, CListCtrlEx)
//{{AFX_MSG_MAP(CScanFileList)
...
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
...
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
3,函数实现:
void CScanFileList::OnCustomDraw ( NMHDR* pNMHDR, LRESULT* pResult )
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );
// Take the default processing unless we
// set this to something else below.
*pResult = CDRF_DODEFAULT;
// First thing - check the draw stage. If it's the control's prepaint
// stage, then tell Windows we want messages for every item.
if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage )
{
// 这里仅仅比较文本,注意:index == pLVCD->nmcd.dwItemSpec
if (GetItemText(pLVCD->nmcd.dwItemSpec, 2) == m_lpszEncrypt)
{
pLVCD->clrText = RGB(255,0,0);
pLVCD->clrTextBk = RGB(255,0,0);
}
// Tell Windows to paint the control itself.
*pResult = CDRF_DODEFAULT;
}
}
相关文章推荐
- QTextEdit中选中文本修改字体与颜色,全部文本修改字体与颜色(设置调色板的前景色、背景色、文字颜色以及基色)
- MFC 可以设置背景色、字体、字体颜色、透明背景的 Static 静态文本控件
- <P>段落标签</p>设置字体和大小,颜色以及与<font>文本标签</font>
- MFC中设置静态文本的字体颜色、背景透明以及解决字体重叠
- markdown 设置字体、字号、颜色以及背景色
- MFC中设置静态文本的字体颜色、背景透明以及解决字体重叠
- MFC中设置静态文本的字体颜色、背景透明以及解决字体重叠
- <P>段落标签</p>设置字体和大小,颜色以及与<font>文本标签</font>
- textView 的设置文本中某一文字的字体颜色以及图文混排
- MFC 可以设置背景色、字体、字体颜色、透明背景的 Static 静态文本控件
- MFC中设置静态文本的字体颜色、背景透明以及解决字体重叠
- WebView设置文本内容字体的大小以及颜色
- eclipse设置护眼豆沙绿背景色以及字体颜色
- MFC 可以设置背景色、字体、字体颜色、透明背景的 Static 静态文本控件
- MFC中设置静态文本的字体颜色、背景透明以及解决字体重叠
- MFC中设置静态文本的字体颜色、背景透明以及解决字体重叠
- eclipse设置护眼豆沙绿背景色以及字体颜色
- MFC中设置静态文本的字体颜色、背景透明以及解决字体重叠
- MFC静态文本控件如何设置字体--大小和颜色及背景色
- Eclipse设置护眼背景色以及字体颜色