| CODE |
| IDD_GETINTEGER DIALOG DISCARDABLE 0, 0, 300, 100 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Enter a number" FONT 8, "MS Sans Serif" { DEFPUSHBUTTON "&Ok", IDOK, 10, 70, 100, 16 PUSHBUTTON "&Cancel", IDCANCEL, 180, 70, 100, 16 EDITTEXT IDC_EDITTEXT, 10, 10, 280, 16 } |
| CODE |
| BOOL CALLBACK GetIntegerProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { switch(Message) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: switch(LOWORD(wParam)) { case IDOK: EndDialog(hwnd, IDOK); break; case IDCANCEL: EndDialog(hwnd, IDCANCEL); break; } break; default: return FALSE; } return TRUE; } |
| CODE |
| LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_COMMAND: switch(LOWORD(wParam)) { case ID_FILE_EXIT: SendMessage(hwnd, WM_CLOSE, 0, 0); break; case ID_FILE_GETINT: { int ret = DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_GETINTEGER), hwnd, GetIntegerProc); if(ret == IDOK) { MessageBox(hwnd, "IDOK", "notice", MB_OK | MB_ICONINFORMATION); } else if(ret == IDCANCEL) { MessageBox(hwnd, "IDCANCEL", "notice", MB_OK | MB_ICONINFORMATION); } else if(ret == -1) { MessageBox(hwnd, "ERROR", "notice", MB_OK | MB_ICONINFORMATION); } } } break; case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; } |
| CODE |
| int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASSEX wc; HWND hwnd; MSG Msg; // Register the window class wc.cbSize = sizeof(WNDCLASSEX); wc.style = 0; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MYICON)); wc.hCursor = LoadCursor(GetModuleHandle(NULL), IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wc.lpszMenuName = MAKEINTRESOURCE(IDR_MYMENU); wc.lpszClassName = g_szClassName; wc.hIconSm = LoadIcon(GetModuleHandle(NULL), IDI_APPLICATION); if(!RegisterClassEx(&wc)) { MessageBox(NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, g_szClassName, "The title of my window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, NULL, NULL, hInstance, NULL); if(hwnd == NULL) { MessageBox(NULL, "Window creation failed!", "Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); while(GetMessage(&Msg, NULL, 0, 0) > 0) { TranslateMessage(&Msg); DispatchMessage(&Msg); } return Msg.wParam; } |