WINAPI를 배우고 있습니다. 메시지를 받고 특정 작업을 수행하기 위해 프로그래밍하고 싶을 때. VC6.0에서 오류가 발생했습니다.WINAPI의 메시지 배포 기능에 어떤 종류의 매개 변수를 설정해야합니까?
예를 들어, 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 매크로 만 4 매개 변수를 보인다. WM_COMMAND를 사용할 때 4 개의 매개 변수로 함수를 만들 수 있다는 것을 알고 있습니다.
void MainDlg_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
하지만 WM_NOTIFY, WM_KEYDOWN 또는 기타 메시지는 어떻게됩니까? 메시지에 메시지 배포 기능을 만들 때 설정해야하는 매개 변수의 수와 매개 변수의 수를 어떻게 알 수 있습니까? 나는 MSDN과 google에 대한 답변을 찾지 못했습니다. 아무도이 사실을 알고 있습니까? MFC는 무엇을합니까?
windowsx.h 헤더를 보시겠습니까? – Xearinox
감사합니다. */ #define HANDLE_WM_KEYDOWN (hwnd, wParam, lParam, fn) \ ((hnnd), (hwnd, wParam, lParam, fn) (UINT) (wParam), TRUE, (int) (short) LOWORD (lParam), (UINT) HIWORD (lParam)), 0L) #define FORWARD_WM_KEYDOWN (hwnd, vk, cRepeat, 플래그, fn) \ void) (fn) (hwnd), WM_KEYDOWN, (WPARAM) (UINT) (vk), MAKELPARAM ((cRepeat), (flags)))'를 호출합니다. 그러나 나는 WM_NOTIFY에 대해 뭔가를 찾지 못했습니다. @Xearinox –
올바르게 기억한다면 HANDLE_WM_NOTIFY는 commctrl.h에 있습니다. – Xearinox