| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1556 人关注过本帖
标题:VC打不开模式对话框
只看楼主 加入收藏
xufen340
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:166
专家分:1351
注 册:2009-8-7
收藏
得分:0 
a.在处理WM_PAINT消息时,只能用BeginPaint和EndPaint.

b.CPaintDC对象在构造时调用CWnd::BeginPaint,在析构的时候调用CWnd::EndPaint,刚好符合a.

c.在客户区绘图时,要用GetDC和ReleaseDC.

d.CClientDC对象在构造时调用GetDC,在析构时调用ReleaseDC,刚好符合c.
2009-09-02 19:23
swc
Rank: 3Rank: 3
等 级:论坛游民
威 望:6
帖 子:394
专家分:83
注 册:2006-4-7
收藏
得分:0 
由xufen340提到的关于CPaintDC与CClientDC的封装想到了资源申请与释放的问题。
在开发中,对于资源的释放我有一种感觉:并不是每次申请资源就一定要对应显示的释放,特别是在函数域里头。有些时候感觉释放了倒会出现内存溢出的错误(Access Violation)。还有VC在自动生成WM_PAINT的OnPaint处理函数时,在声明了CPaintDC后,又没有释放它。而这对程序并没有什么影响。谁能进一步解释一下?

实践、学习、再实践、再学习......
2009-09-03 08:54
xufen340
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:166
专家分:1351
注 册:2009-8-7
收藏
得分:0 
CPaintDC类在构造函数中声情资源,在析构中释放资源。
所以当函数OnPaint函数结束后,CPaintDC对象也结束,调用CPaintDC的析构函数。
2009-09-03 11:06
快速回复:VC打不开模式对话框
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.061386 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved