ダイアログボックスプロシージャ
ダイアログボックスを利用するには、以下のような"ダイアログボックスプロシージャ"の記述(関数定義) が必要です。
これは、コンパイル可能な全コードではなく、部分です。
本当にスケルトンといえるとしたら、黒い太字の部分くらいになるでしょう。
これくらいだったら自分で使ってもいいかな、という程度にしてあります。
ダイアログプロシージャ "DlgProc1()" の例です。
LRESULT CALLBACK DlgProc1( HWND, UINT, WPARAM, LPARAM ) ; // プロトタイプ宣言. LRESULT CALLBACK DlgProc1( HWND hWnd, UINT msg, WPARAM wp, LPARAM lp ) { switch( msg ) { case WM_INITDIALOG : return FALSE ; // TRUE ; case WM_COMMAND : switch( LOWORD( wp )) { case IDOK : break ; case IDCANCEL : break ; // case ID_BUTTON1 : break ; } break ; case WM_CLOSE : // DestroyWindow( hWnd ) ; // CreateDialog() 関数による場合(モードレスダイアログの場合). // EndDialog( hWnd , 0 ) ; // DialogBox() 関数による場合(モーダルダイアログの場合). break ; case WM_DESTROY : break ; } return FALSE ; }
HWND hDlg = CreateDialog( GetModuleHandle(NULL), "MYDIALOG", NULL, (DLGPROC)DlgProc1 ) ; // モードレスダイアログボックス. int ret = DialogBox( GetModuleHandle(NULL), "MYDIALOG", NULL, (DLGPROC)DlgProc1 ) ; // モーダルダイアログボックス.
のように使います。戻り値の格納は必要によります。ほったらかしても構いません
[トップ] [戻る]