天狼鼠

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2011年3月20日

摘要: CRect rect;GetDlgItem(IDC_SAMPLE)->GetWindowRect(&rect);GetWindowRect得到的是屏幕坐标ScreenToClient(rect)将屏幕坐标转换为客户区坐标 阅读全文
posted @ 2011-03-20 15:16 情有独钟 阅读(385) 评论(0) 推荐(0) 编辑

摘要: FromHandle给出一个window对象句柄,返回一个相应对象的指针如:CBrush::FromHandlestatic CBrush* PASCAL FromHandle( HBRUSH hBrush );CFont::FromHandle static CFont* PASCAL FromHandle( HFONT hFont ); 阅读全文
posted @ 2011-03-20 15:15 情有独钟 阅读(2296) 评论(0) 推荐(0) 编辑

摘要: CColorDialog dlg;dlg.m_cc.Flags|=CC_RGBINIT | CC_FULLOPEN // "|" 组合符不能去掉,因为Flags会有个默认值dlg.m_cc.rgbResult=m_clr;//保存上一次选择的结果if(IDOK==dlg.DoModal()){m_clr=dlg.m_cc.rgbResult; //选择的结果}}CFontDialog dlg;if(IDOK==dlg.DoModal()){if(m_font.m_hObject)m_font.DeleteObject();m_font.CreateFontIndirect( 阅读全文
posted @ 2011-03-20 15:15 情有独钟 阅读(447) 评论(0) 推荐(0) 编辑

摘要: 如果你希望能够在自己的程序中表现出新意,那么你一定不会仅仅满足于MFC提供那些标准控件。这时,我们就必须自己另外多做些工作了。就改变控件外观这一点来说,主要是利用控件的自绘功能(Owner Draw)实现的。本篇将和各位一起定义一个XP风格的CXPButton按钮类,目的不在于介绍CXPButton类的使用技巧,而在于向各位阐述实现自绘按钮的方法。当然如果你觉得CXPButton有用的话,也可以把它的源文件保存下来,直接加入到自己的项目中。本篇要点:一、准备工作二、实现原理及难点三、按钮类的使用四、小结与提示五、附录 一、准备工作在开始编码之前,首先应该确定好,更准确的说应该是设计好按钮在各种 阅读全文
posted @ 2011-03-20 15:14 情有独钟 阅读(416) 评论(0) 推荐(0) 编辑

摘要: 在每一个控件需要被绘制时都会调用OnCtlColor,因此会被调用多次对话框背景绘制时会被调用一次,其次是对话框上的子控件绘制时会调用!HBRUSH CMultiThreadDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);CFont * cFont=new CFont;cFont->CreateFont(16,0,0,0,FW_SEMIBOLD,FALSE,FALSE,0, ANSI_CHARSET,OUT_DEFAU 阅读全文
posted @ 2011-03-20 15:14 情有独钟 阅读(1056) 评论(0) 推荐(0) 编辑