找回密码
 立即注册
搜索
查看: 2390|回复: 7

[软件] 一个windows程序为啥有这多“退出” ?

[复制链接]
     
发表于 2022-3-11 09:55 | 显示全部楼层 |阅读模式
本帖最后由 proof1 于 2022-3-11 09:57 编辑

// 窗口过程  window procedure
LRESULT CALLBACK TheWindowProc (  ........  )
{
        switch ( uMsg )
        {
        case WM_KEYDOWN:        //a key has been pressed
                {
                        if ( wParam == VK_ESCAPE ) DestroyWindow ( hWnd ) ;       2号退出
                        return ( 0 ) ;
                } break ;

        case WM_DESTROY : //window being destroyed
                {
                        PostQuitMessage ( 0 ) ;                                                       3号退出
                        return ( 0 ) ;
                } break ;

        }
}


int WINAPI WinMain (  .........  )
{
        // 消息循环
        MSG msg ;
        for ( ; ; )         {
                //check for a message
                if ( PeekMessage( &msg , NULL , 0 , 0 , PM_REMOVE ) )
                        if ( msg.message == WM_QUIT )   break ;                           1号退出
                        TranslateMessage ( &msg ) ;
                        DispatchMessage ( &msg ) ;
        }
        return ( msg.wParam ) ;
}

---------------------------------------------------------
一个windows程序为啥有这多“退出” ?

高手给解释一下,1、2、3号退出,到底是做什么的?

回复

使用道具 举报

发表于 2022-3-11 09:57 | 显示全部楼层
不懂就买本书看,大概你连TheWindowProc 是啥都不知道吧
回复

使用道具 举报

     
 楼主| 发表于 2022-3-11 09:59 | 显示全部楼层
本帖最后由 proof1 于 2022-3-11 10:37 编辑
tsubasa9 发表于 2022-3-11 09:57
不懂就买本书看,大概你连TheWindowProc 是啥都不知道吧

精英213 Q79.gif
回复

使用道具 举报

     
发表于 2022-3-11 10:06 | 显示全部楼层
官方的hello world
只需要一个PostQuitMessage(0);
网上很多代码复制粘贴瞎搞,不如不看

https://github.com/microsoft/Win ... oWorld/cpp/main.cpp
回复

使用道具 举报

     
发表于 2022-3-11 11:21 来自手机 | 显示全部楼层
注释不是写的挺好的,收到不同消息退出,有按键esc有窗口被关,有退出消息
看不懂去了解下win32消息机制

----发送自 samsung SM-N9600,Android 10
回复

使用道具 举报

     
 楼主| 发表于 2022-3-11 11:43 | 显示全部楼层
chachi 发表于 2022-3-11 11:21
注释不是写的挺好的,收到不同消息退出,有按键esc有窗口被关,有退出消息
看不懂去了解下win32消息机制


代码的原意是:按ESC键 退出整个应用(窗口)程序。

1、2、3号退出,是否有的语句根本不会执行?(代码bug?)
真正执行退出动作的是哪一个?哪些个语句是聋子耳朵?
回复

使用道具 举报

头像被屏蔽
     
发表于 2022-3-11 12:00 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2022-3-11 12:03 | 显示全部楼层
https://stackoverflow.com/questi ... roy-in-a-windows-pr

我没办法判断代码质量,建议自己查看win32手册
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-9-23 03:31 , Processed in 0.056073 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表