VC++关于WM_CLOSE消息的问题,高分求解答
if(VK_F2==wParam){::SendMessage(g_wnd,WM_CLOSE,wParam,lParam);UnhookWindowsHookEx(hke...
if(VK_F2==wParam)
{
::SendMessage(g_wnd,WM_CLOSE,wParam,lParam);
UnhookWindowsHookEx(hkey);
}
如上所示,当程序运行到sendmessage时,程序应该已经关闭了啊,为啥还会执行后面的UnhookWindowsHookEx(hkey)语句呢? 展开
{
::SendMessage(g_wnd,WM_CLOSE,wParam,lParam);
UnhookWindowsHookEx(hkey);
}
如上所示,当程序运行到sendmessage时,程序应该已经关闭了啊,为啥还会执行后面的UnhookWindowsHookEx(hkey)语句呢? 展开
展开全部
我感觉 虽然 已经发出了一个 close 消息 ,但是 window是 有执行间隔时间的,也就是说 只是发了个消息,还是会继续执行
追问
The SendMessage function sends the specified message to a window or windows. It calls the window procedure for the specified window and does not return until the window procedure has processed the message.
这是我查的msdn,人家说这个函数是处理完了消息才会返回,那么处理完消息的意思的就程序结束了啊,为啥还会运行下一句呢
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是出错了,你重下一遍
追问
不懂就别胡说八道
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个,你是如何判断出来后面的语句还在执行的呢。。。试验过了吗。。。。我感觉放在这里怪怪的
更多追问追答
追问
我设置断点试过了,执行完了send还会执行下一句的。孙鑫C++书里写的
追答
我想应该这么理解,windows消息机制应该类似多线程。消息循环的同时并不妨碍读取消息,所以,执行了send之后,就会继续运行下一句,但是同时呢,在另外一边,消息循环机制会接收到send发来的关闭消息,然后关闭程序。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询