DlgBase
Visual C++ 2005 Express Edition
Windows Server 2003 SP1 Platform SDK
Windowsアプリケーション / 空のプロジェクト
ダイアログ
DlgBase.c
// マルチバイト文字セット #include
#include "resource.h" // プロトタイプ宣言 INT_PTR CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); void OnInitDialog(HWND hDlg); int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { DialogBox(hInstance, MAKEINTRESOURCE(IDD_DLGBASE), NULL, DlgProc); return 0; } INT_PTR CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { BOOL bRetVal = TRUE; switch (uMsg) { case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_BTN_HELLO: MessageBox(hDlg, "hello, world", "Hello", MB_OK); break; } break; case WM_INITDIALOG: OnInitDialog(hDlg); bRetVal = TRUE; // TRUEならデフォルトフォーカスを使用 break; case WM_CLOSE: EndDialog(hDlg, IDOK); break; default: bRetVal = FALSE; } return bRetVal; } void OnInitDialog(HWND hDlg) { RECT rcDesktop; RECT rcDialog; GetWindowRect(GetDesktopWindow(), &rcDesktop); GetWindowRect(hDlg, &rcDialog); SetWindowPos(hDlg, HWND_TOP, (rcDesktop.right - (rcDialog.right - rcDialog.left)) / 2, (rcDesktop.bottom - (rcDialog.bottom - rcDialog.top)) / 2, 0, 0, SWP_NOSIZE); }
resource.h
#define IDD_DLGBASE 100 #define IDC_BTN_HELLO 1000
DlgBase.rc
// リソーススクリプト #include
#include "resource.h" IDD_DLGBASE DIALOGEX 0, 0, 320, 240 STYLE WS_POPUPWINDOW | WS_MINIMIZEBOX EXSTYLE WS_EX_APPWINDOW CAPTION "DlgBase" // FONT 9, "MS Pゴシック" BEGIN PUSHBUTTON "Hello",IDC_BTN_HELLO,12,12,48,12 END