Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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;
- };
- WNDPROC prevWndProc;
- ...
- prevWndProc = (WNDPROC) SetWindowLongPtr(hwnd, GWL_WNDPROC, (LONG_PTR)&myNewWndProc);
- ...
- LRESULT CALLBACK myNewWndProc(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;
- }
- return CallWindowProc(prevWndProc, hwnd, uMsg, wParam, lParam);
- }
- SetWindowSubclass(hwnd, &mySubClassProc, 1, 0);
- ...
- LRESULT CALLBACK mySubClassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData)
- {
- msg_dev(toString(uMsg));
- switch(uMsg)
- {
- case WM_MOUSEMOVE:
- SetCursor(LoadCursor(NULL, IDC_HAND));
- break;
- case WM_LBUTTONDOWN:
- msg_dev("Button down!");
- break;
- case WM_NCDESTROY:
- RemoveWindowSubclass(hWnd, &mySubClassProc, 1);
- break;
- }
- return DefSubclassProc(hWnd, uMsg, wParam, lParam);
- }
- SetWindowLong(hwnd, GWL_WNDPROC, (LONG_PTR)&myNewWndProc);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement