我正在学习WINAPI。当我想编程获取消息然后做一些特定的操作。我从VC6.0收到错误。
例如,我想要获取wm_keydown消息。
像这样的代码:// .h file
int MainDlg_OnKeyDown(HWND hwnd,WPARAM wParam, LPARAM lParam);
|
HANDLE_MSG(hWnd, WM_KEYDOWN, MainDlg_OnKeyDown);
int MainDlg_OnKeyDown(HWND hwnd, int id, WPARAM wParam, LPARAM lParam)
{
return 1;
}
错误:
error C2660: 'MainDlg_OnKeyDown' : function does not take 5 parameters
HANDLE_MSG Macro似乎只有4个参数。我知道当我使用WM_COMMAND时,我可以用4个参数创建一个函数。
void MainDlg_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
但是WM_NOTIFY,WM_KEYDOWN或其他消息呢? 当我为消息创建消息部署功能时,我应该如何知道应该设置多少参数和哪种参数。我没有在MSDN和谷歌上找到我的答案。任何人都知道这个吗? MFC做了什么?
答案 0 :(得分:4)
HANDLE_MSG宏在Windowsx.h头文件中定义。
注意:要为WM_NOTIFY使用消息破解程序,必须使用commctrl.h标头中定义的HANDLE_WM_NOTIFY宏。