MFC listCtrl选中某一项,LIST失去焦点时,该项仍然显示高亮
2014-03-13 17:31
1281 查看
//消息映射
ON_NOTIFY_REFLECT(NM_CUSTIOMDRAW,OnCUstomDraw)
void CAppDlg::OnCustomdrawMyList ( NMHDR* pNMHDR, LRESULT* pResult )
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );
switch(pLVCD->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW;
break;
caseCDDS_ITEMPREPAINT:
*pResult = CDRF_NOTIFYSUBITEMDRAW;
break;
case CDDS_ITEMPREPAINT | CDDS_SUBITEM:
COLORREF clrNewTextColor, clrNewBkColor;
int nItem = static_cast<int>( pLVCD->nmcd.dwItemSpec );
BOOL bSelect = FALSE;
POSITION pos =m_ctrlListName.GetFirstSelectedItemPosition();
while(pos)
{
int index = m_ctrlListName.GetNextSelectedItem(pos);
if(index==nItem)
{
bSelect = TRUE;
break;
}
}
if(bSelect)
{
clrNewTextColor = RGB(255,0,0);//Set the text to red
clrNewBkColor = RGB(51,102,205);//Set the bkgrnd color to blue
}
else
{
clrNewTextColor = RGB(0,0,0);//Leave the text black
clrNewBkColor = RGB(204,232,207); //leave the bkgrnd color white
}
pLVCD->clrText = clrNewTextColor;
pLVCD->clrTextBk = clrNewBkColor;
*pResult = CDRF_DODEFAULT;
break;
Default:
*pResult = CDRF_DODEFAULT;
break;
}
}
ON_NOTIFY_REFLECT(NM_CUSTIOMDRAW,OnCUstomDraw)
void CAppDlg::OnCustomdrawMyList ( NMHDR* pNMHDR, LRESULT* pResult )
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );
switch(pLVCD->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW;
break;
caseCDDS_ITEMPREPAINT:
*pResult = CDRF_NOTIFYSUBITEMDRAW;
break;
case CDDS_ITEMPREPAINT | CDDS_SUBITEM:
COLORREF clrNewTextColor, clrNewBkColor;
int nItem = static_cast<int>( pLVCD->nmcd.dwItemSpec );
BOOL bSelect = FALSE;
POSITION pos =m_ctrlListName.GetFirstSelectedItemPosition();
while(pos)
{
int index = m_ctrlListName.GetNextSelectedItem(pos);
if(index==nItem)
{
bSelect = TRUE;
break;
}
}
if(bSelect)
{
clrNewTextColor = RGB(255,0,0);//Set the text to red
clrNewBkColor = RGB(51,102,205);//Set the bkgrnd color to blue
}
else
{
clrNewTextColor = RGB(0,0,0);//Leave the text black
clrNewBkColor = RGB(204,232,207); //leave the bkgrnd color white
}
pLVCD->clrText = clrNewTextColor;
pLVCD->clrTextBk = clrNewBkColor;
*pResult = CDRF_DODEFAULT;
break;
Default:
*pResult = CDRF_DODEFAULT;
break;
}
}
相关文章推荐
- CListCtrl 失去焦点仍然显示选中高亮
- VC ListControl/TreeControl失去焦点后,所选择行仍然高亮显示
- C# TreeView树控件,失去焦点仍然高亮显示,右击节点时才弹出右键菜单,空白处右击不弹出菜单
- 如何使得CTreeCtrl 失去焦点后,选中项的颜色仍然保持不变,怎么实现?高亮
- ListView失去焦点选中行不能高亮显示的问题解决
- clistctrl失去焦点高亮显示选中行
- ListView失去焦点选中行不能高亮显示的问题解决
- 如何改变treeview控件选中节点的高亮颜色,就是大家都熟悉的深蓝色,同样可以改变失去焦点时,高亮显示的颜色
- C# TreeView树控件,失去焦点仍然高亮显示,右击节点时才弹出右键菜单,空白处右击不弹出菜单
- C#ListView失去焦点选中行不能高亮显示的问题解决
- CTreeCtrl和CListCtrl失去焦点时高亮选中项
- VC中CTreeCtrl和CListCtrl失去焦点时高亮选中项
- winform_TreeView失去焦点时选中节点仍然突显
- winform ListView 扩展:1.失去焦点后保持选中行高亮;2.分组折叠
- Listview 保持选中的item高亮,即使listview失去焦点
- 关于WPF中RichTextBox失去焦点后如何保持高亮显示所选择的内容
- 如何使得clist ctrl 失去焦点后,仍然高亮
- C# treeview在焦点失去时高亮显示
- mfc treectrl失去焦点后高亮
- .NET-TreeView选中节点失去焦点后颜色仍突出显示