ui/win32/window.c

changeset 825
1bac7e45712b
parent 818
8185cd761897
child 841
651cf2c59dd9
equal deleted inserted replaced
824:a0ea8f3aa6e8 825:1bac7e45712b
56 W32Widget *widget = (W32Widget*)GetWindowLongPtr(hwnd, GWLP_USERDATA); 56 W32Widget *widget = (W32Widget*)GetWindowLongPtr(hwnd, GWLP_USERDATA);
57 if (widget && widget->wclass->eventproc) { 57 if (widget && widget->wclass->eventproc) {
58 widget->wclass->eventproc(widget, hwnd, uMsg, wParam, lParam); 58 widget->wclass->eventproc(widget, hwnd, uMsg, wParam, lParam);
59 } 59 }
60 switch(uMsg) { 60 switch(uMsg) {
61 case WM_DESTROY: 61 case WM_DESTROY: {
62 PostQuitMessage(0); 62 PostQuitMessage(0);
63 break; 63 break;
64 default: 64 }
65 return DefWindowProc(hwnd, uMsg, wParam, lParam); 65 case WM_COMMAND: {
66 HWND hwndCtrl = (HWND)lParam;
67 W32Widget *cmdWidget = (W32Widget*)GetWindowLongPtr(hwndCtrl, GWLP_USERDATA);
68 if (cmdWidget && cmdWidget->wclass->eventproc) {
69 cmdWidget->wclass->eventproc(cmdWidget, hwnd, uMsg, wParam, lParam);
70 }
71 }
72 default: return DefWindowProc(hwnd, uMsg, wParam, lParam);
66 } 73 }
67 return 0; 74 return 0;
68 } 75 }
69 76
70 void ui_window_init(void) { 77 void ui_window_init(void) {

mercurial