数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1323|回复: 6

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

[复制链接]
发表于 2022-3-11 09:56:05 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
本帖最后由 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-17 14:12:10 | 显示全部楼层
zhonsir 发表于 2022-3-11 10:58
不要被习惯思维给误导了,好比大家常说的“死路一条”,但其实“死路有千万条” ...

秀儿,好久不见了
回复 支持 反对

使用道具 举报

发表于 2022-3-17 03:15:17 | 显示全部楼层
这让我想起了《深入浅出MFC》侯俊杰写的。。。
回复 支持 反对

使用道具 举报

发表于 2022-3-11 15:27:45 | 显示全部楼层
这是消息泵,完成消息自然得“退出”

1号:退出消息,就是你alt+f4,或者真的关闭程序了,自然要退出

2号:按ECS,销毁当前窗口
3号:WM_DESTROY,按了右上角的x

只有1号是:"退出程序",2\3是消息,泵不会停止

PS:古老的winAPI了...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-11 11:45:30 | 显示全部楼层

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

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

使用道具 举报

发表于 2022-3-11 10:58:39 | 显示全部楼层
不要被习惯思维给误导了,好比大家常说的“死路一条”,但其实“死路有千万条”
回复 支持 反对

使用道具 举报

发表于 2022-3-11 10:23:21 | 显示全部楼层
多给自己留几条后路!
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-19 03:46 , Processed in 0.327601 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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