一番上のメニュー | 「メニューバー」「トップレベルメニュー」 |
メニューを押すと出てくるメニュー | 「サブメニュー」「ポップアップメニュー」「ドロップダウンメニュー」 |
右クリックメニューなどメニューバー以外のメニュー | 「ショートカットメニュー」「コンテキストメニュー」 |
アプリケーションのアイコンやタイトルバーを 右クリックしたときに出てくるメニュー | 「ウィンドウメニュー」「システムメニュー」「コントロールメニュー」 |
サブメニューを開くメニューアイテム | 「メニュー名」 |
押すと何かが実行されるメニューアイテム | 「コマンド」「コマンドアイテム」 |
・・・ ///// WinMain int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) { // ウィンドウクラスの登録 WNDCLASSEX wcx; wcx.cbSize = sizeof(WNDCLASSEX); wcx.style = CS_DBLCLKS; // ダブルクリック検知 wcx.lpfnWndProc = WindowProc; wcx.cbClsExtra = 0; wcx.cbWndExtra = 0; wcx.hInstance = hInstance; wcx.hIcon = (HICON)LoadImage(hInstance,MAKEINTRESOURCE(IDI_ICON) ,IMAGE_ICON , 0, 0,LR_DEFAULTCOLOR); // アイコン wcx.hIconSm = (HICON)LoadImage(hInstance,MAKEINTRESOURCE(IDI_ICON) ,IMAGE_ICON ,16,16,LR_DEFAULTCOLOR); // 小さいアイコン wcx.hCursor = (HCURSOR)LoadImage(hInstance,MAKEINTRESOURCE(IDC_CURSOR) ,IMAGE_CURSOR, 0, 0,LR_DEFAULTCOLOR); // カーソル wcx.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); // ウィンドウ背景色 wcx.lpszMenuName = MAKEINTRESOURCE(IDR_MENU); // メニューID wcx.lpszClassName = strClassName; if(!RegisterClassEx(&wcx)) return 0; // クラス登録 // ウィンドウ作成 ・・・ |
・・・ 上はWinMain関数です。 ///// ウィンドウプロシージャ LRESULT CALLBACK WindowProc(HWND hwnd,UINT msg,WPARAM wp,LPARAM lp) { switch(msg) { ///// コマンド系 case WM_COMMAND: { // メニューコマンド振り分け switch(LOWORD(wp)) { case IDM_QUIT: // 「終了」を押すとここ! PostMessage(hwnd,WM_CLOSE,0,0); // WM_CLOSE発信 break; default: break; } } break; ///// 作成・破棄系 case WM_CREATE: { } break; case WM_CLOSE: { // 終了確認 if(MessageBox(hwnd,"終了しますか?","終了確認",MB_YESNO|MB_ICONQUESTION)==IDNO) break; DestroyWindow(hwnd); // DefWindowProcを通していないので自分でウィンドウを破棄。 } break; case WM_DESTROY: { PostQuitMessage(0); // WM_QUIT送信 } break; ///// デフォルト default: return DefWindowProc(hwnd,msg,wp,lp); } return 0; } ///// End of Source |
![]() |