#include //プロトタイプ宣言 HWND InitWindow(void); LRESULT CALLBACK WndProc(HWND hwnd, UINT message,WPARAM wParam, LPARAM lParam); //定数 #define Button1 100 #define Button2 101 #define Button3 103 //グローバル変数 HINSTANCE g_hInstance; ///////////////////////////////////////////////////////////////////////////// //WinMain関数 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmd, int nCmdShow) { MSG msg; g_hInstance = hInstance; InitWindow(); //メッセージループ while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg); DispatchMessage (&msg); } return msg.wParam; } ///////////////////////////////////////////////////////////////////////////// //ウィンドウを作る関数 HWND InitWindow(void) { HWND hWnd; LPCTSTR szclassName = "succ"; WNDCLASSEX wcex; ZeroMemory((LPVOID)&wcex, sizeof(WNDCLASSEX)); //ウィンドウクラスを登録 wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = 0; wcex.lpfnWndProc = WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = g_hInstance; wcex.hIcon = NULL; wcex.hCursor = LoadCursor(NULL,IDC_ARROW); wcex.hbrBackground = ( HBRUSH)( COLOR_WINDOW+1); wcex.lpszMenuName = NULL; wcex.lpszClassName = szclassName; wcex.hIconSm = NULL; RegisterClassEx(&wcex); //ウィンドウ作成 hWnd=CreateWindowEx(0,szclassName,"ウィンドウのタイトル",WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, NULL,NULL,g_hInstance,NULL); //ウィンドウ表示 ShowWindow(hWnd, SW_SHOW); UpdateWindow(hWnd); return hWnd; } ///////////////////////////////////////////////////////////////////////////// //ウィンドウプロシージャ LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_CREATE: CreateWindow("BUTTON", "メモ帳を起動!", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 10, 10, 150, 25, hwnd, (HMENU)Button1, g_hInstance, NULL); CreateWindow("BUTTON", "電卓を起動!", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 10, 36, 150, 25, hwnd, (HMENU)Button2, g_hInstance, NULL); CreateWindow("BUTTON", "WordPadを起動!", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 10, 62, 150, 25, hwnd, (HMENU)Button3, g_hInstance, NULL); return 0; case WM_COMMAND: switch(LOWORD(wParam)) { case Button1: ShellExecute(NULL,"open","notepad.exe",NULL,NULL,SW_SHOWNORMAL); break; case Button2: ShellExecute(NULL,"open","calc.exe",NULL,NULL,SW_SHOWNORMAL); break; case Button3: ShellExecute(NULL,"open","wordpad.exe",NULL,NULL,SW_SHOWNORMAL); break; } return 0; case WM_CLOSE: DestroyWindow(hwnd); return 0; case WM_DESTROY: PostQuitMessage(0); break; default: return (DefWindowProc(hwnd,message,wParam,lParam)); } return 0L; }