在树型控件中移动鼠标产生字体及颜色的变化
http://tech.ddvip.com 2007年03月22日 社区交流
本文详细介绍在树型控件中移动鼠标产生字体及颜色的变化
void CDirTreeCtrl::OnPaint()
{
CPaintDC dc(this); // paint设备环境
CDC memDC;
memDC.CreateCompatibleDC(&dc);
CRect rcClip,rcClient;
dc.GetClipBox(&rcClip);
GetClientRect(&rcClient);
CBitmap bitmap;
bitmap.CreateCompatibleBitmap(&dc,rcClient.Width(),rcClient.Height());
memDC.SelectObject(&bitmap);
CWnd::DefWindowProc(WM_PAINT,(WPARAM)memDC.m_hDC,0);
if(hItem_bc != NULL) {
CRect rect;
UINT selflog=TVIS_DROPHILITED|TVIS_SELECTED;
Color_Font cf;
if(!(GetItemState(hItem_bc,selflog) & selflog) && m_mapColorFont.Lookup(hItem_bc,cf))
{
CFont *pFontDC;
CFont fontDC;
LOGFONT logfont;
logfont=logfont_old;
logfont.lfUnderline=TRUE; //设置字体的下划线属性
fontDC.CreateFontIndirect(&logfont); //创建新字体
pFontDC=memDC.SelectObject(&fontDC); //将新字体选入设备环境
memDC.SetTextColor(cf.color);
CString sItem=GetItemText(hItem_bc);
GetItemRect(hItem_bc,&rect,TRUE);
memDC.TextOut(rect.left+2,rect.top+2,sItem);
memDC.SelectObject(pFontDC);//在设备环境中恢复原字体
fontDC.DeleteObject();
}
}
dc.BitBlt(rcClip.left,rcClip.top,rcClip.Width(),rcClip.Height(),
&memDC,rcClip.left,rcClip.top,SRCCOPY);
bitmap.DeleteObject();
hItem_bc=NULL;
}
来源:vchelp 作者:夕阳人 责编:豆豆技术应用
正在加载评论...
- VC/VC++按钮设计专题
- VC/VC++ 菜单专题
- VC/VC++ 工具条专题
- VC/VC++ 对话框教程
- VC/VC++ 报表教程
- VC/VC++ 控件
- VC/VC++ GDI
- Visual Studio 2008
- VC/VC++ MFC教程
- VC/VC++ QQ
- VC/VC++ Socket编程
- VC/VC++ 钩子编程
- TangramMini组件应用教程
- VC/VC++ 窗体
- VC/VC++ ADO 教程
- Windows CE 教程
- VC/VC++ DLL(动态链接库)编程
- VC/VC++ PDFlib
- VC与MATLAB编程
- VC/VC++ DirectShow 教程
- VC++入门视频教程
- VC/VC++ COM组件设计与应用
- VC/VC++ ATL
- VC/VC++ WTL
- VC/VC++ 定制调试诊断工具和程序
- VC/VC++ 进程
- VC/VC++ Win32
- VC/VC++ WMI
- VC/VC++ 消息
- 更多VC/VC++专题……