在C++ WIN32中 如何运行ON_MESSAGE的功能
答案:3 悬赏:50 手机版
解决时间 2021-01-22 23:00
- 提问者网友:戎马万世
- 2021-01-22 16:55
在C++ WIN32中 如何运行ON_MESSAGE的功能
最佳答案
- 五星知识达人网友:山君与见山
- 2021-01-22 17:18
ON_MESSAGE是MFC里面的一个自定义消息映射宏,它的作用是绑定一个自定义的消息和该消息的响应函数。
函数原型:
ON_MESSAGE(message, memberFxn ) 参数:
message:消息的ID。
memberFxn :映射message的消息函数,该函数的类型必须是以下类型的
afx_msg LRESULT (CWnd::*)(WPARAM, LPARAM)。
举例说明:
//.h
…
#define WM_MYMESSAGE (WM_USER + 100)
…
//.cpp
…
BEGIN_MESSAGE_MAP(CMyWnd2, CWnd)
ON_MESSAGE(WM_MYMESSAGE, OnMyMessage)
END_MESSAGE_MAP()
…
LRESULT CMyWnd2::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(wParam);
UNREFERENCED_PARAMETER(lParam);
// Handle message here.
return 0;
}
函数原型:
ON_MESSAGE(message, memberFxn ) 参数:
message:消息的ID。
memberFxn :映射message的消息函数,该函数的类型必须是以下类型的
afx_msg LRESULT (CWnd::*)(WPARAM, LPARAM)。
举例说明:
//.h
…
#define WM_MYMESSAGE (WM_USER + 100)
…
//.cpp
…
BEGIN_MESSAGE_MAP(CMyWnd2, CWnd)
ON_MESSAGE(WM_MYMESSAGE, OnMyMessage)
END_MESSAGE_MAP()
…
LRESULT CMyWnd2::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(wParam);
UNREFERENCED_PARAMETER(lParam);
// Handle message here.
return 0;
}
全部回答
- 1楼网友:鸽屿
- 2021-01-22 18:58
1、ON_MESSAGE是MFC中定义的用于将自定义消息和消息处理函数关联起来的宏。如:
#define WM_MYMESSAGE (WM_USER + 1)
BEGIN_MESSAGE_MAP( CMyWnd, CMyParentWndClass )
ON_MESSAGE( WM_MYMESSAGE, OnMyMessage )
END_MESSAGE_MAP( )
2、例程:LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
swtich(uMsg)
{
case MM_WIM_DATA:
OnMmWimData(wParam,lParam);
return ERROR_SUCCESS;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
}
- 2楼网友:山君与见山
- 2021-01-22 18:20
那就在对应窗口的窗口函数里面写啊:LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
swtich(uMsg)
{
case MM_WIM_DATA:
OnMmWimData(wParam,lParam);
return ERROR_SUCCESS;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
}追问老大,switch都写错了,认真点总行吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯