WM_CLOSE 没起作用啊

caseWM_CLOSE://很怪,这里下面的判断没起作用。就算点了否还是退出窗口了,。原因不知?if(IDYES==MessageBox(hKeyloger,"是否要退... 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操作,是系统默认执行的。 谢谢上面三位对我的回答。都怪我第一时间没有把程序全部贴出来。谢谢大家了。
展开
 我来答
jinjiashan
2009-07-08 · 超过31用户采纳过TA的回答
知道答主
回答量:232
采纳率:0%
帮助的人:112万
展开全部
你打开“否”的按钮所对应的消息处理函数,里面有个默认的函数Oncancel或onok,注释掉就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pigkiller23
2009-07-08 · TA获得超过1749个赞
知道小有建树答主
回答量:736
采纳率:0%
帮助的人:546万
展开全部
叮咚~~
回答正确。
DefWindowProc这个函数一般是在Default分支中写的,你写哪儿了?
写在default的原因是,把你不敢兴趣的消息让系统做默认处理,如果放在程序最后那么你之前所有的操作都白做了~~~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友87b4f1c69
2009-07-08 · TA获得超过1218个赞
知道小有建树答主
回答量:760
采纳率:0%
帮助的人:969万
展开全部
点否后,直接“return”不就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式