为了账号安全,请及时绑定邮箱和手机立即绑定

不管我点是还是否.都把窗口关了.不知道啥原因?

不管我点是还是否.都把窗口关了.不知道啥原因?

C++
浮云间 2023-04-22 22:18:21
case WM_CLOSE: //很怪,这里下面的判断没起作用。就算点了否还是退出窗口了,原因不知?if(IDYES==MessageBox(hKeyloger,"是否要退出程序?","gaofff",MB_YESNO)){MessageBox(hKeyloger,"点了是前?","gaoYES",MB_YESNO);DestroyWindow(hKeyloger);MessageBox(hKeyloger,"点了是后?","gaoYES",MB_YESNO);}else{MessageBox(hKeyloger,"点了否?","gaoNO",MB_YESNO);}break;case WM_DESTROY: //一定要有这个CASE,不然你结束程序后,进程没有结束PostQuitMessage(0);break;换了个地方写就成了.看来应该是return DefWindowProc(hKeyloger,uMsg,wParam,lParam);把uMSG又传回到MSG里面了.导致了虽然我点了否,但是我还是操作了WM_CLOSE ,这个操作还是被DefWindowProc(hKeyloger,uMsg,wParam,lParam);传回去了,所以前面在case WM_CLOSE:里面写的代码虽然能判断运行,但是最后还是会执行close操作,是系统默认执行的。 
查看完整描述

2 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

你打开“否”的按钮所对应的消息处理函数,里面有个默认的函数Oncancel或onok,注释掉就行了

查看完整回答
反对 回复 2023-04-26
?
温温酱

TA贡献1752条经验 获得超4个赞

DefWindowProc这个函数一般是在Default分支中写的,你写哪儿了?
写在default的原因是,把你不敢兴趣的消息让系统做默认处理,如果放在程序最后那么你之前所有的操作都白做了~~~

查看完整回答
反对 回复 2023-04-26
  • 2 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信