社区
Windows SDK/API
帖子详情
DestroyWindow销毁问题
shuibingmiao
2006-06-06 06:02:04
用DestroyWindow销毁时是否窗口内的控件、子窗口等也跟着销毁
...全文
541
5
打赏
收藏
DestroyWindow销毁问题
用DestroyWindow销毁时是否窗口内的控件、子窗口等也跟着销毁
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaoshi0
2006-07-20
打赏
举报
回复
窗体是系统画到屏幕上的,如果调用了DestroyWindow,窗体就会收到一个WM_DESTROY的消息,这个消息的一般处理是直接调用PostQuitMessage(0);将消息循环退出。
如果你不让这个消息做默认处理,它就只能销毁你的窗体(当然窗体上什么东西都没有了)
但消息循环还没有退出。
BlueDeepOcean
2006-07-13
打赏
举报
回复
是的,函数销毁由窗口句柄hWnd指定的窗口。该函数发送WM_DESTROY、WM_NCDESTROY消息给窗口的回调函数来使窗口无效,同时撤销它的键盘输入焦点状态。函数同时销毁属于此窗口的菜单,并将线程消息队列中还未处理的、属于该窗口的消息发送给该窗口的回调函数。该函数销毁定时器和撤销窗口对剪切板的拥有权。
如果该窗口作为一个父窗口或拥有者窗口,那么将先销毁所有的子窗口或自身拥有的窗口,之后再销毁自身。
eg.
HWND hButton;
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
char szChildWindow[64];
BOOL fFirst = TRUE;
switch(message)
{
......
case WM_LBUTTONDOWN:
hButton = CreateWindow("BUTTON","Test",WM_VISIBLE|WS_CHILD,10,10,600,80,hWnd,(HMENU)IDC)BUTTON1,hInst,NULL);
break;
case WM_RBUTTONDOWN:
DestroyWindow(hButton);
break;
case WM_PARENTNOTIFY:
if (fFirst)
{
sprintf(szChildWindow,"子窗口(ID=%d)被Create!",HIWORD(wParam));
fFirst = FALSE;
}
else
printf(szChildWindow,,"子窗口(ID=%d)被销毁!",HIWORD(wParam));
MessageBox(NULL,szChildWindow,"Create(Destroy)Window",MB_OK);
break;
......
}
......
}
......
wt_sanlian
2006-07-13
打赏
举报
回复
en!
hillyard
2006-07-12
打赏
举报
回复
恩 楼上说的对 DestroyWindow 在销毁父类窗口的同时 自动销毁与之相关的子类窗口。
tianshu888
2006-06-07
打赏
举报
回复
是这样的
If the specified window is a parent or owner window, DestroyWindow automatically destroys the associated child or owned windows when it destroys the parent or owner window.
Test_
Destroy
Window
.zip
Destroy
Window
函数测试程序;
Destroy
Window
函数测试程序;
Destroy
Window
函数测试程序。
CWnd-MFC中文手册
Destroy
Window
函数
销毁
Window
s的窗口,但是不
销毁
对象。 CWnd类和消息映射机制隐藏了WndProc函数。接收到的
Window
s通知消息通过消息映射被自动发送到适当的CWnd OnMessage成员函数。你可以在派生类中重载OnMessage...
模态对话框与非模态对话的几种
销毁
方法与区别
Warning:calling
Destroy
Window
in CWnd::~CWnd On
Destroy
or PostNc
Destroy
in derived class will not be called 由于是Warnning,没有太在意,后来随意上网一找发现,这个
问题
还是很严重的
问题
。 后,...
自己写的小游戏壳
Destroy
Window
hwnd ; 退出程序 PostQuitMessage 0 ; } else { 调用函数指针创建子类对象 ctrl CGameCtrl::pfun create ; 设置句柄 ctrl >SetHandle hwnd hIns ; 游戏的初始...
vc模态和非模态对话框关闭过程
非模态对话框相对于模态对话框,他的创建和
销毁
过程和模态对话框有一定的区别,非模态对话框需要重载函数OnCanel,并且在这个函数中调用
Destroy
Window
。并且不能调用基类的OnCancel,因为基类的OnCancel调用了...
Windows SDK/API
1,221
社区成员
8,136
社区内容
发帖
与我相关
我的任务
Windows SDK/API
C++ Builder Windows SDK/API
复制链接
扫一扫
分享
社区描述
C++ Builder Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章