社区
C++ 语言
帖子详情
MSDN上写这样那DestroyWindow是个destructor吗??
CHHuang
2004-12-23 01:44:13
Construction/Destruction
CWnd Constructs a CWnd object.
DestroyWindow Destroys the attached Windows window.
MSDN上写这样那DestroyWindow是个destructor吗??
...全文
104
9
打赏
收藏
MSDN上写这样那DestroyWindow是个destructor吗??
Construction/Destruction CWnd Constructs a CWnd object. DestroyWindow Destroys the attached Windows window. MSDN上写这样那DestroyWindow是个destructor吗??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oyljerry
2004-12-23
打赏
举报
回复
先销毁窗口,然后在析构
寻开心
2004-12-23
打赏
举报
回复
CWnd不一定是主窗口,也不一定是CFrameWnd创建的
它只是一个窗口的类而已
这两篇文章对初学者比较有帮助,或者看VC++技术内幕那本书
http://www.csdn.com.cn/program/4196.htm
http://www.copathway.com/vchelp/zteach/mfc_s2.asp?type_id=114&class_id=1&cata_id=14&article_id=900&search_term=
blhy
2004-12-23
打赏
举报
回复
实际上是这样的,DestroyWindow是MFC提供给程序员调用CWnd析构函数的地方。只有你的主窗口是从CWnd类继承的才需要重写这个函数,并在里面显示调用delete this;这将让主窗口在销毁时能调用主窗口类的析构函数,因为你在创建这个窗口对象时是在堆上创建的。是DestroyWindow调用~CWnd(),而不是~CWnd()调用DestroyWindow().如果你的主窗口是从CFrameWnd派生的,就用不着这样做了,因为CFrameWnd已经帮你做了。
jsblcg
2004-12-23
打赏
举报
回复
搂主弄混了层次了,DestroyWindow是Windows接口,与CreateWindow等均是与HWND关联的API,
而析构函数是C++语法的东西。虽然Windows确实是按面向对象的思路设计的,
MFC的CWnd又是C++对Windows窗口API的封装,但两者属于不同的系统。
CWnd终结时有两件事要做,一是关闭与CWnd对象关联的Windows窗口(以m_hWnd表示),一是销毁自己。前者MFC希望程序员自己做,因为通常窗口关闭时需要做些结束处理,通常是由OnClose响应WM_CLOSE消息做这些(最终是通过调用DestroyWindow实现)。如果程序员忘了(结束处理不完善所致),CWnd的析构函数~CWnd会调用DestroyWindow来做这事。不过它会给你一个警告,告诉你结束处理可能有问题,警告内容就是楼主的帖子了。
yjh1982
2004-12-23
打赏
举报
回复
只是销毁一个窗口而已
CHHuang
2004-12-23
打赏
举报
回复
那Destruction的意思是??
不是destructor而是Destroy啰!!
是吗??
Destruction动作是透过DestroyWindow函式去 Destroys the attached Windows window.
是吗??
r_swordsman
2004-12-23
打赏
举报
回复
析构函数不是你调用的~~你调用的一定不是析构函数~~~~~~` :)
寻开心
2004-12-23
打赏
举报
回复
用c++当中对象的思想完整理解CWnd是比较麻烦的
建议你找一本win32编程的书籍看看
看完整的一个窗口的创建和删除过程就清楚了
寻开心
2004-12-23
打赏
举报
回复
不是
DestroyWindow是一个窗口被删除之前的要处理的一个步骤
只有进行了这个调用之后,才可以去删除这个窗口
它并不是真正的析构函数
实际上的完成处理流程是
CWnd * pWnd = new CWnd(); // 构造对象
pWnd->Create(。。。。。); // 创建它
pWnd->ShowWindow(); // 显示它
....
pWnd->DestroyWindow(); // 删除pWnd当中的用户自己内部构造的对象的地方
....
delete pWnd; // 这里才是析构调用的地方,但是在这个时候一定是DestroyWindow已经被调用后的了
链接:
MSDN
UserNet等
起一个新的IE窗口时,如何让窗口上的所有菜单和控件都消失?? T 我用createprocess和ShellExecuteEx都试过了,都不行,有可能是我的参数没设定对, 有人知道该怎么搞吗,谢谢,就是使IE看起来象一个普通的程序,...
句柄(Handle)是什么--对句柄的简单理解。
开始学习C++,不了解句柄,无从下手,今天在网上找了找,并查阅
MSDN
,算是明白了不少。现汇总如下: 简单说来,句柄(Handle)就是对象的一个标识,它就像是人的身份证号码一样具有唯一性。它是
Window
s用来标识被应用...
MFC永久窗口对象与临时窗口对象
了解临时窗口与永久窗口的概念,出于好奇,出于方便,直接百度一下,看到了几篇题为解释临时窗口与永久窗口的文章,随后网友在论坛中附上了
MSDN
中的原文,仔细翻译一下,发现网上查到的几篇文章,对这个概念的解释是...
非模态对话框资源的释放方法
From
MSDN
: Modal dialog boxes are normally created on the stack frame and
destroy
ed when the function that created them ends. The dialog object’s
destructor
is called when the object goes out of ...
MFC如何销毁窗口资源
在做MFC界面时,有一个问题曾经困扰我很长时间,窗口资源到底该如何销毁?这个问题网上也很多,我结合自己的体会,以及
MSDN
,尝试给出一个解答。如有错误,也请不吝赐教。
C++ 语言
64,647
社区成员
250,496
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章