CTreeCtrl失去焦点后高亮选中项
来源:互联网 发布:四则运算算法实现 编辑:程序博客网 时间:2024/05/21 12:07
CTreeCtrl失去焦点后高亮选中项
在VC++编程中,CTreeCtrl是使用最多的一种控件,由于MFC中包含了太多的宏,并且注释也不够仔细,这导致了我们在对控件进行扩展或重绘时都有一定的难度。对于CTreeCtrl可以在进行Create()函数时,添加Style类型TVS_SHOWSELALWAYS,保证在失去焦点时依旧高亮,但是高亮不够明显,呈灰颜色。为了解决这个问题,我们需要对其进行重绘。重绘函数如下,可以通过MFC中的类向导来创建该函数:
通过该函数的重绘就可以保证即使树控件失去焦点时,依旧保持节点高亮状态。
void CTreeCtrlEx::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult){ LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR); // TODO: 在此添加控件通知处理程序代码 *pResult = 0; LPNMTVCUSTOMDRAW pDraw=(LPNMTVCUSTOMDRAW)pNMHDR; DWORD dwDrawStage=pDraw->nmcd.dwDrawStage; UINT uItemState =pDraw->nmcd.uItemState; *pResult=CDRF_NOTIFYITEMDRAW; CDC* pdc=CDC::FromHandle(pDraw->nmcd.hdc); CRect rc; HTREEITEM hItem=(HTREEITEM) pDraw->nmcd.dwItemSpec; m_tree.GetItemRect(hItem,&rc,TRUE);//FALSE);text only CString txt=m_tree.GetItemText(hItem); if((dwDrawStage & CDDS_ITEM) && (uItemState & CDIS_SELECTED)) {// pdc->FillSolidRect(&rc,RGB(100,53,255));//clr); // pdc->SetTextColor(RGB(255,255,255));//white pdc->SetBkColor(RGB(100,53,255));//clr); CFont* pfnt=pdc->GetCurrentFont(); // pdc->TextOut(rc.left+2,rc.top+2,txt); pdc->SelectObject(pfnt); *pResult = CDRF_NOTIFYITEMDRAW; } else // without these ,1st blue ! { pdc->FillSolidRect(&rc, GetSysColor(COLOR_WINDOW)); pdc->SetTextColor(GetSysColor(COLOR_WINDOWTEXT)); pdc->TextOut(rc.left+2, rc.top+2, txt); }}
通过该函数的重绘就可以保证即使树控件失去焦点时,依旧保持节点高亮状态。
0 0
- CTreeCtrl失去焦点后高亮选中项
- CTreeCtrl和CListCtrl失去焦点时高亮选中项
- VC中CTreeCtrl和CListCtrl失去焦点时高亮选中项
- 如何使得CTreeCtrl 失去焦点后,选中项的颜色仍然保持不变,怎么实现?高亮
- ListCtrl和CTreeCtrl 实际可用 失去焦点 后自定义颜色
- listview和treeview,失去焦点,仍然选中。
- MFC listCtrl选中某一项,LIST失去焦点时,该项仍然显示高亮
- mfc treectrl失去焦点后高亮
- ListView失去焦点时,已被选中行 …
- 让EditText失去焦点,进入后不会选中的解决方法
- 失去焦点
- 获得焦点失去焦点
- 获取焦点, 失去焦点
- 选中树结点,失去焦点后,仍显示之前选中的节点
- C# WinForm TreeView改变选中节点颜色,失去焦点时选中节点仍突显。
- C# WinForm TreeView改变选中节点颜色,失去焦点时选中节点仍突显。
- 关于选中节点失去焦点时修改选中节点的方法
- C# WinForm TreeView改变选中节点颜色,失去焦点时选中节点仍突显。
- (二)线程同步_4---使用Lock同步代码块
- android中wifidirect的操作学习
- 网络编程学习笔记(socketpair函数)
- 11.4 Map标注
- EasyUI combobox动态设置是否验证
- CTreeCtrl失去焦点后高亮选中项
- 45.螺旋矩阵 (5分)
- Android EventBus实战 没听过你就out了
- 第一篇博客____望好风长吟
- IOS TabBarController上建立Item
- php从隐藏域传值给js,并通过post在其他页面取值
- Github上600多个iOS开源项目
- Android开发环境配置——Eclipse
- 加快了建立开放时间到了快捷方式的刻录机