// Copyright 2005 Doi Shigeki // list202.cpp // #include // Windowsのプログラムでは必須 #include "list202.h" BOOL CALLBACK dlgproc(HWND, UINT, WPARAM, LPARAM ); int WINAPI WinMain( HINSTANCE hi, HINSTANCE, LPSTR, int ) { DialogBox( hi, "dlg00", HWND_DESKTOP, (DLGPROC)dlgproc ); // dlg00 という名前のダイアログボックスを開く // ダイアログプロシージャは dlgproc() を使う return 0; } BOOL CALLBACK dlgproc( HWND hwndDlg, UINT msg, WPARAM wp, LPARAM ) { char cbuf[100]; static int n; // 値を再度利用するので static にする switch(msg) { case WM_INITDIALOG: // ダイアログボックスの表示直前に呼ばれる n = 0; return TRUE; case WM_COMMAND: switch( wp ) { case ID_inc: // "inc"ボタンが押された n = n + 1; wsprintf(cbuf, "%d", n ); SetDlgItemText(hwndDlg, ID_t, cbuf); return TRUE; case ID_rst: // "reset"ボタンが押された n = 0; wsprintf(cbuf, "%d", n ); SetDlgItemText(hwndDlg, ID_t, cbuf); return TRUE; } break; case WM_CLOSE: // リソースで WS_SYSMENUを設定すると EndDialog(hwndDlg,FALSE); // 「閉じるボタン」が付く return TRUE; // 「閉じるボタン」のクリックで // WM_CLOSEが送られる } return FALSE; // ダイアログプロシージャで処理されない // メッセージに対しては必ずFALSEを返す // FALSEを返さないと処理されないメッセージは // そのまま破棄される }