LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; static HMENU hmenu; static MENUITEMINFO menuInfo; switch (message) { case WM_CREATE: hmenu = GetMenu(hWnd); menuInfo.cbSize = sizeof (MENUITEMINFO); menuInfo.fMask = MIIM_STATE; menuInfo.fState = MFS_GRAYED; SetMenuItemInfo(hmenu , IDM_PLAY_PAUSE , FALSE , &menuInfo); break; ........
メニューにチェックを付ける
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; static HMENU hmenu; static MENUITEMINFO menuInfo; switch (message) { case WM_CREATE: hmenu = GetMenu(hWnd); menuInfo.cbSize = sizeof (MENUITEMINFO); menuInfo.fState = MFS_UNCHECKED; break; case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // 選択されたメニューの解析: switch (wmId) { case IDM_ABOUT: DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); break; case IDM_EXIT: DestroyWindow(hWnd); break; case IDM_PLAY_PAUSE: menuInfo.fMask = MIIM_STATE; if (menuInfo.fState == MFS_CHECKED) menuInfo.fState = MFS_UNCHECKED; else menuInfo.fState = MFS_CHECKED; SetMenuItemInfo(hmenu , IDM_PLAY_PAUSE , FALSE , &menuInfo); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }
0 件のコメント:
コメントを投稿