欢迎来到天天文库
浏览记录
ID:11615443
大小:20.60 KB
页数:8页
时间:2018-07-13
《ctreectrlx改变子项字体和颜色cmap》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、在VC++中改变CTreeCtrl子项Item字体和颜色http://lxspine.blog.hexun.com/8664035_d.htmlSettingcolorandfontattributeoftheitemforCTreeCtrlinVC++.翻译ZafirAnjum的文章Settingcolorandfontattributeforindividualitems原文http://www.codeguru.com/Cpp/controls/treeview/misc-advanced/article.php/c633通过定义一个继承CTreeC
2、trl的类来实现改变子项字体和颜色:首先定义一个字体、颜色的结构体:protected:structColor_Font{ COLORREFcolor; LOGFONTlogfont;};使用CMap来保存各个Item对应的字体、颜色信息CMapm_mapColorFont;添加设置字体、颜色、粗体的函数voidCTreeCtrlX::SetItemFont(HTREEITEMhItem,LOGFONT&logfont){Color_Fontcf;if(!m_mapColorFon
3、t.Lookup(hItem,cf)) cf.color=(COLORREF)-1;cf.logfont=logfont;m_mapColorFont[hItem]=cf;}voidCTreeCtrlX::SetItemBold(HTREEITEMhItem,BOOLbBold){SetItemState(hItem,bBold?TVIS_BOLD:0,TVIS_BOLD);}voidCTreeCtrlX::SetItemColor(HTREEITEMhItem,COLORREFcolor){Color_Fontcf;if(!m_mapColorFont
4、.Lookup(hItem,cf)) cf.logfont.lfFaceName[0]=' ';cf.color=color;m_mapColorFont[hItem]=cf;}BOOLCTreeCtrlX::GetItemFont(HTREEITEMhItem,LOGFONT*plogfont){Color_Fontcf;if(!m_mapColorFont.Lookup(hItem,cf)) returnFALSE;if(cf.logfont.lfFaceName[0]==' ') returnFALSE;*plogfont=cf.logfo
5、nt;returnTRUE;}BOOLCTreeCtrlX::GetItemBold(HTREEITEMhItem){returnGetItemState(hItem,TVIS_BOLD)&TVIS_BOLD;}COLORREFCTreeCtrlX::GetItemColor(HTREEITEMhItem){//Returns(COLORREF)-1ifcolorwasnotsetColor_Fontcf;if(!m_mapColorFont.Lookup(hItem,cf)) return(COLORREF)-1;returncf.color;}添加W
6、M_PAINT信息监控,重载OnPaint()函数来实现绘制afx_msgvoidCMyTreeCtrl::OnPaint(){//获取当前绘制对象的DCCPaintDCdc(this);//使用将要绘制的对象的DC创建一个memoryDC//memorydevicecontext的概念:是在内存中创建一个结构来反映一个显示(屏幕区域、窗口、//打印机等)的表面。可以用来先在内存中准备好要显示的图像,从而实现双缓存,提高刷新//速度减少刷新时产生的闪烁。CDCmemDC;//从当前DC创建内存对象memDC.CreateCompatibleDC(&dc);
7、//定义CRect对象,用来确定区域CRectrcClip,rcClient;//获取当前对象的边界区域dc.GetClipBox(&rcClip);//获取当前对象的用户区域GetClientRect(&rcClient);//SelectacompatiblebitmapintothememoryDC//创建一个bmp文件,作为memDC的内容//该文件的大小与用于区域相同CBitmapbitmap;bitmap.CreateCompatibleBitmap(&dc,rcClient.Width(),rcClient.Height());memDC.S
8、electObject(&bitmap);//Setclipreg
此文档下载收益归作者所有