MFC中CDC(CObject Device Context)类
程序运行后,程序的标题、边框、菜单区域等为非客户区,程序界面剩余部分为客户区域。
CDC的派生类:(https://topic.alibabacloud.com/a/basics-of-hdc-cdc-cwindowdc-cclientdc-and-cpaintdc_8_8_32337692.html)
上述网址中可查看相关派生类说明,不做具体解释,也可通过微软相关帮助文件分项进行查看。
1、CPaintDC类:为响应Windows消息WM_PAINT的成员函数提供设备环境;
完成在客户区绘图操作:
1 CPaintDC dc(this); 2 Graphics graphics(dc); 3 FontFamily fontFamily(L"Times New Roman"); 4 Gdiplus::Font font(&fontFamily, 24, FontStyleRegular, UnitPixel); 5 PointF pointF(30.0f, 10.0f); SolidBrush solidBrush(Color(255, 0, 0, 255)); 6 graphics.DrawString(L"Hello", -1, &font, pointF, &solidBrush);
2、CClientDC类:为非响应Windows消息WM_PAINT的成员函数提供设备环境;
完成客户区临时绘图:
1 void CMFCPaintingDlg::OnBnClickedButton1() 2 { 3 CClientDC dc(this); 4 Graphics graphics(dc); 5 graphics.DrawEllipse(&Pen(Color(255, 0, 0)), 0, 0, 100, 100); 6 }
CWindowDC类:为成员函数在包括非客户区在内的整个屏幕区域内绘图;
完成屏幕区域绘图:
1 void CMFCPaintingDlg::OnBnClickedButton3() 2 { 3 CWindowDC dc(NULL); 4 Graphics graphics(dc); 5 graphics.DrawEllipse(&Pen(Color(255, 0, 0)), 500, 500, 100, 100); 6 }
问题:CClinentDC dc(this)\CWindowDC dc(this)与CClientDC dc(NULL)\CWindowDC dc(NULL)在客户区域、屏幕区域的区别与联系?
又没有什么可说的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~