社区
Windows SDK/API
帖子详情
DestroyWindow销毁问题
shuibingmiao
2006-06-06 06:02:04
用DestroyWindow销毁时是否窗口内的控件、子窗口等也跟着销毁
...全文
627
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
函数是
Window
s API中的一个重要组成部分,主要用于
销毁
指定的窗口。在MFC(Microsoft Foundation Classes)框架中,这个函数同样...在实际编程中,务必注意窗口
销毁
的时机,以避免潜在的
问题
和资源泄漏。
销毁
后重新创建的
问题
2. 使用`
Destroy
Window
()`函数正确地
销毁
窗口,并在成功
销毁
后将窗口句柄设为无效值。 3. 检查窗口类注册是否正确,确保每次创建窗口时都是一个新的实例。 4. 使用`PostQuitMessage()`发送退出消息,以确保窗口消息...
非模式对话框的
销毁
的三种方式
非模式对话框是一种在用户与应用程序交互过程中保持活动状态,不会阻塞主应用程序窗口的对话框。它们通常用于提供一种持续存在的用户界面组件,允许...在
Window
s编程中,正确管理对象的生命周期是避免内存
问题
的关键。
C++源码:非模态对话框创建和
销毁
可以调用`
Destroy
Window
`函数来
销毁
对话框。确保在
销毁
前,对话框没有执行任何未完成的操作。 7. **消息循环**:非模态对话框有自己的消息循环,这意味着它会处理自己的消息,直到被
销毁
。这不同于模态对话框,模态...
VC自动抛出
销毁
的窗体
当特定事件触发(比如计时器超时或用户点击确认按钮),窗体会接收到这个自定义消息,然后调用
Destroy
Window
进行
销毁
。 “底部跑出”可能指的是窗体从屏幕底部向上弹出的效果,这是通过设置窗口的位置和动画效果来...
Windows SDK/API
1,222
社区成员
8,135
社区内容
发帖
与我相关
我的任务
Windows SDK/API
C++ Builder Windows SDK/API
复制链接
扫一扫
分享
社区描述
C++ Builder Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章