Я работаю в среде IDE, которая создает hwnd
и соответствующие WndProc
LRESULT CALLBACK
. Мне нужно изменить WndProc
на пользовательский.
Я читал, что SetWindowLong
сделает эту работу, но я не могу найти ни одного работающего примера. Например:
HWND hwnd; //My window
SetWindowLong(hwnd, GWL_WNDPROC, myNewWndProc);
Третий параметр для SetWindowLong
— это Long
, как его называет имя функции. Как я могу сделать ссылку из моей функции WndProc
на Long
?
My WndProc
:
LRESULT CALLBACK WndProcedure(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
msg_dev(toString(uMsg));
switch(uMsg){
case WM_MOUSEMOVE:
SetCursor(LoadCursor(NULL, IDC_HAND));
break;
case WM_LBUTTONDOWN:
msg_dev("Button down!");
break;
default:
DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
};
SetWindowSubclass
. - person Jonathan Potter   schedule 27.07.2015