我应该在WINAPI中为消息部署功能设置什么样的参数

时间:2014-03-12 15:11:07

标签: windows winapi visual-c++ mfc vc6

我正在学习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做了什么?

1 个答案:

答案 0 :(得分:4)

HANDLE_MSG宏在Windowsx.h头文件中定义。

注意:要为WM_NOTIFY使用消息破解程序,必须使用commctrl.h标头中定义的HANDLE_WM_NOTIFY宏。