C++消息处理函数

请各位高手帮我解决一个问题。我写了一个程序,想让他点击了程序的关闭按钮过后,就是“x”,弹出一个信息框,有两个选择,一个是“是”,一个是“否”,别人说要用到消息WM_CL... 请各位高手帮我解决一个问题。 我写了一个程序,想让他点击了程序的关闭按钮过后,就是“x”,弹出一个信息框,有两个选择,一个是“是”,一个是“否”,别人说要用到消息WM_CLOSE什么的,但是我是C++初学者,有些不懂,还望各位高手赐教,谢谢 展开
 我来答
ygk2003
2015-09-09 · 知道合伙人教育行家
ygk2003
知道合伙人教育行家
采纳数:4779 获赞数:139718
2007年毕业于兰州大学管理学院行政管理专业,学士学位。工会工作5年从业经历;档案工作7年从业经历。

向TA提问 私信TA
展开全部
点击关闭按键是会发送消息给你的程序去处理的,也就是WM_CLOSE消息。这些消息处理都在回调函数 WInProc(一般这样命名,可以更改)中 类似这样:
LRESULT WINAPI WinProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
break;
case WM_KEYUP:
switch (wParam)
{
case VK_ESCAPE:
//User has pressed the escape key, so quit
DestroyWindow(hWnd);
return 0;
break;
}
break;

}
return DefWindowProc(hWnd, msg, wParam, lParam);
}
你可以在 switch(msg) 下增加一个case语句,处理你的WM_CLOSE消息。
case WM_CLOSE:
if (IDYES == MessageBox(hWnd,"是否真的要退出?",NULL,MB_YESNO))
{
DestroyWindow(hWnd);
}
break;
崇拜八神
2011-11-03
知道答主
回答量:16
采纳率:0%
帮助的人:11.2万
展开全部
点击关闭按键是会发送消息给你的程序去处理的,也就是WM_CLOSE消息。这些消息处理都在回调函数 WInProc(一般这样命名,可以更改)中 类似这样:
LRESULT WINAPI WinProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
break;
case WM_KEYUP:
switch (wParam)
{
case VK_ESCAPE:
//User has pressed the escape key, so quit
DestroyWindow(hWnd);
return 0;
break;
}
break;

}
return DefWindowProc(hWnd, msg, wParam, lParam);
}
你可以在 switch(msg) 下增加一个case语句,处理你的WM_CLOSE消息。
case WM_CLOSE:
if (IDYES == MessageBox(hWnd,"是否真的要退出?",NULL,MB_YESNO))
{
DestroyWindow(hWnd);
}
break;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vevbowxyc
2011-11-04
知道答主
回答量:18
采纳率:0%
帮助的人:16.5万
展开全部
DefWindowProc和WindowProc都是回调处理消息API函数,DefWindowProc处理WindowProc没处理的消息。但是在你程序的场景中,CMFCWnd是CFrameWnd的子类,仅仅调用DefWindowProc不能实现全部CFrameWnd特色消息,必须调用父类的消息处理函数才行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式