小甲鱼 发表于 2014-6-8 21:27:13

第006讲:系统如何销毁一个窗口

系统如何销毁一个窗口

你可以使用 DestroyWindow 函数来销毁一个窗口。

但通常情况下,应用程序是经过下图这么个过程(这次不写那么多文字了,No pic you say a J8 的形式希望大家能喜欢^_^):





E=MC2 发表于 2014-6-10 09:34:16

“让用户判断是否真需要关闭?”怎么判断的? 我看没有出现提示框啊。不太理解。

小甲鱼 发表于 2014-6-10 10:55:50

E=MC2 发表于 2014-6-10 09:34 static/image/common/back.gif
“让用户判断是否真需要关闭?”怎么判断的? 我看没有出现提示框啊。不太理解。

case WM_CLOSE:

    // Create the message box. If the user clicks
    // the Yes button, destroy the main window.

    if (MessageBox(hwnd, szConfirm, szAppName, MB_YESNOCANCEL) == IDYES)
      DestroyWindow(hwndMain);
    else
      return 0;

美丽七宗罪 发表于 2014-8-22 19:37:15

你这个图是不是有问题啊,也不知道我理解的对不对

当接受WM_CLOSE消息时,可以判断也可以不判断不是么?:shock::shock:

当接受WM_DESTROY消息时,保存数据释放内存,然后调用postquitmessage函数?:shock::shock:

gauss 发表于 2014-10-1 19:43:40

对关闭窗口有了更深的认识!

智商是硬伤 发表于 2015-8-8 18:32:18

美丽七宗罪 发表于 2014-8-22 19:37
你这个图是不是有问题啊,也不知道我理解的对不对

当接受WM_CLOSE消息时,可以判断也可以不判断不是么? ...

那个判断分支是非必要程序,不写也实现了销毁窗口,但没保存数据,也没个提醒,这样用户体验感极差。

゛落君灬殇丶 发表于 2015-10-2 14:24:28

:lol:机智的我一早就用了 WM_CLOSE

1179760517 发表于 2017-2-3 16:34:12

感觉postquitmessage没什么用啊

188089942 发表于 2017-5-31 14:29:24

加了   case WM_CLOSE:   之后系统就不会再发case WM_DESTROY:消息了吗?

我总感觉逻辑上说不通!

Zey 发表于 2018-11-22 22:43:59

问一下,为什么我在按照图中的方式把代码写进去之后,在按了关闭之后,窗口的进程还是没有消失,还是在内存中占用着?

Yan720513 发表于 2022-4-27 20:49:20

学习中请多指教
页: [1]
查看完整版本: 第006讲:系统如何销毁一个窗口