CListCtrl非激活状态高亮显示
来源:互联网 发布:sql server 无法连接 编辑:程序博客网 时间:2024/06/06 19:53
CListCtrl非激活状态高亮显示之前遇到过,搜了半天解决了但没记录,今天又遇到了,又搜了半天,所以这次得做个记录。
三个要点:
一、Always Show Selection:False
三、响应NM_CUSTOMDRAW
void CmfcDlg::OnNMCustomdrawList(NMHDR *pNMHDR, LRESULT *pResult)
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );
*pResult = CDRF_DODEFAULT;
if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYSUBITEMDRAW;
}
else if ( (CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage )
{
COLORREF clrNewTextColor, clrNewBkColor;
int nItem = static_cast<int>( pLVCD->nmcd.dwItemSpec );
if (lstTest.GetItemState(nItem,LVIS_SELECTED))//如果要刷新的项为当前选择的项,则将文字设为白色,背景色设为蓝色
{
clrNewTextColor = RGB(255,255,255); //Set the text to white
clrNewBkColor = RGB(49,106,197); //Set the background color to blue
}
else
{
clrNewTextColor = RGB(0,0,0); //set the text black
clrNewBkColor = RGB(255,255,255); //leave the background color white
}
pLVCD->clrText = clrNewTextColor;
pLVCD->clrTextBk = clrNewBkColor;
*pResult = CDRF_DODEFAULT;
}
}
- CListCtrl非激活状态高亮显示
- CListCtrl非激活状态,失去焦点依然高亮显示
- CListCtrl高亮显示一行
- CListCtrl高亮显示某一项
- ClistCtrl高亮显示某一项
- CListCtrl高亮显示某一行
- clistctrl选中高亮依次显示
- CListCtrl控件选中并高亮显示
- CListCtrl,SetItemState 高亮(显示蓝色)
- 让CListCtrl选中行保持其蓝色高亮状态
- CListCtrl高亮显示和黑白间隔背景
- CListCtrl设置选中某一item,高亮显示
- 选中某一item,高亮显示(CListCtrl CTreeCtrl CListBox)
- CListCtrl 高亮删除
- 让CListCtrl选中行恒保持其蓝色高亮状态
- 如何让CListCtrl选中行恒保持其蓝色高亮状态?
- CListCtrl设置和取消高亮方法,使列表中始终只有一条记录为选中高亮状态
- 用代码控制CListCtrl的一行高亮显示或选择的问题
- 你应该更新的Java知识之常用程序库(二)
- TextView在光标处插入文字
- 你应该更新的Java知识之构建工具
- android 单元测试
- python 类型判断
- CListCtrl非激活状态高亮显示
- Android开发之SystemService
- atoi 字符串 转换为 数字 leetcode
- 1036. Boys vs Girls (25)-PAT
- 半年内 Android 增加了350,000个恶意应用程序
- 编译RT5572 RT3572
- (java 功能篇) Java 连接Oracle数据库
- 你应该更新的Java知识之Observer
- T-SQL 编码标准