苏州吴江城乡和住房建设局网站,免费网站托管,网站开发主管待遇,网站常用字号上文的MDI的win32程序会挂掉#xff1b;下面学习和检查一下窗口过程有没有问题#xff1b;
1 主框架窗口过程#xff0c;FrameWndProc#xff1b;
窗口过程主要是按分支处理消息#xff1b; 消息#xff0c;message#xff0c;是过程接收的第二个参数#xff1b; 窗口…
上文的MDI的win32程序会挂掉下面学习和检查一下窗口过程有没有问题
1 主框架窗口过程FrameWndProc
窗口过程主要是按分支处理消息 消息message是过程接收的第二个参数 窗口过程内是按 switch(message){}每个分支处理一个消息有的消息需要在分支之下再分支 菜单消息是WM_COMMAND之下再按菜单ID分支
检查一下每个分支都已经 return 0 或者break没有问题
case WM_QUERYENDSESSION: case WM_CLOSE: 这两个消息的处理是并到一起的共用一段处理代码WM_CLOSE之后也有break,没有问题 2 子窗口过程HelloWndProc 检查一下各消息处理分支也没有问题 当点击子窗口的关闭按钮子窗口过程收到WM_CLOSE消息弹出消息框 case WM_CLOSE: if (IDOK ! MessageBox(hwnd, TEXT(OK to close window?), TEXT(Hello), MB_ICONQUESTION | MB_OKCANCEL)) return 0; break; 看上去没问题不知为何会挂掉如果把if和return这两句注释了就可以关闭各个子窗口只是没有弹窗提示