我正在使用一个IDE,它创建了一个hwnd
以及相应的WndProc
LRESULT CALLBACK
。我需要将WndProc
更改为自定义的。
我已经阅读过SetWindowLong
可以完成此任务,但是我找不到任何可行的示例。例如:
HWND hwnd; //我的窗口
SetWindowLong(hwnd,GWL_WNDPROC,myNewWndProc);
对于SetWindowLong
的第三个参数是一个Long
,正如函数名称所述。我怎么才能将我的WndProc
函数引用转换成一个Long
?
我的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
进行此操作。 - Jonathan Potter