整个程序可否只在初始化的时候执行一次GetDC(),以后就只用它一个? 本帖最后由 weiwuyuan 于 2011-11-07 09:35:25 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以.GetDC函数和ReleaseDC的方法,在程序窗口中画图非常方便。为了避免获取和释放设备描述表所带来的麻烦,MFC提供了一些CDC派生类,如CPaintDC,CClientDC,CWindowDC,这些类被设计为可直接进行实例化。各个类的构造函数和析构函数调用相应的函数捕获和释放设备描述表,从而使得更加方便简捷。 如果窗口用CS_OWNDC样式创建就可以,其它最好不要,要绘制时才GetDC。DC资源是有限的。 有没考虑到窗口拉伸,屏幕分辨率改变,主题切换之类的问题?需要的时候才GetDC,也不会影响什么效率,用户体验差个1秒不是问题 可以,在大小改变时,重新Get。 必须得重新GetDC()么? 以前获取的dc不能用了么? 貌似不行,如果是临时绘图,你GetDC取的是桌面DC,绘制完不释放的话,会绘到桌面上去。 DC为device context,它包含GDI需要的所有关于显示界面情况的描述字段,包括相连的物理设备和各种各样的状态信息.所以当屏幕分辨率更改后or其他,这时你要重新GetDC,这样才跟当前的状态一致呀,要不这样的话,你此时的DC的状态是之前获取的状态. 最好不要. 重新GetDC 从效率上来说没啥问题. 为新建的对话框添加相应的类时出错,类添加不成功 如何显示环形文字?100分酬! 如何在程序中绑定网卡的IP和MAC地址 奇怪的 CTreeCtrl 怎么做虚拟打印机 socket 急!!!! 为什么相同的语句得出不同的结果? 怎么从一个dll中导出一个类 异常退出的问题 高分求高人呀!!!!!高分求高人呀!!!!窗口激不活! 窗口的客户区域大小不能超过屏幕分辨率大小吗? 求助 绘制背景
GetDC函数和ReleaseDC的方法,在程序窗口中画图非常方便。为了避免获取和释放设备描述表所带来的麻烦,MFC提供了一些CDC派生类,如CPaintDC,CClientDC,CWindowDC,这些类被设计为可直接进行实例化。各个类的构造函数和析构函数调用相应的函数捕获和释放设备描述表,从而使得更加方便简捷。
需要的时候才GetDC,也不会影响什么效率,用户体验差个1秒不是问题
必须得重新GetDC()么? 以前获取的dc不能用了么?