Пример #1
0
	static BOOL CALLBACK dlgProc(HWND i_hwnd, UINT i_message,
								 WPARAM i_wParam, LPARAM i_lParam) {
		DlgMain *wc;
		getUserData(i_hwnd, &wc);
		if (!wc)
			switch (i_message) {
			case WM_INITDIALOG:
				wc = setUserData(i_hwnd, new DlgMain(i_hwnd));
				return wc->wmInitDialog(reinterpret_cast<HWND>(i_wParam), i_lParam);
			}
		else
			switch (i_message) {
			case WM_COMMAND:
				return wc->wmCommand(HIWORD(i_wParam), LOWORD(i_wParam),
									 reinterpret_cast<HWND>(i_lParam));
			case WM_CLOSE:
				return wc->wmClose();
			case WM_NCDESTROY:
				delete wc;
				return TRUE;
			}
		return FALSE;
	}