■ SDK モーダルダイアログのテンプレート
他ウィンドウからダイアログを表示させた場合モーダルとなります
ダイアログのリソースを挿入してください。
VC6 リソースの追加方法
後は、このコードを使用するだけでダイアログベースでアプリケーションが作成できます。
TABSTOPも自動的に動作します
#include <windows.h>
#include "resource.h"
BOOL CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hCurInst,HINSTANCE hPrevInst,
LPSTR lpsCmdLine,int nCmdShow ){
DialogBox(hCurInst,MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DlgProc);
//他のウインドウからダイアログを表示する場合は、
//モーダルにする場合は第3引数をNULLから親のWHNDを渡すように変更する
//WHNDを渡さない場合、モードレスになるがダイアログを開いている間、親ウィンドウでTABSTOPなどが動作しない
return 0;
}
//ダイアログプロシージャー
BOOL CALLBACK DlgProc(HWND hDlg,UINT msg,WPARAM wp,LPARAM lp){
switch (msg){
case WM_SHOWWINDOW:
// SetTimer(hDlg,1000,500,NULL);//ID:1000 500msのタイマーを作成
break;
case WM_PAINT:
break;
case WM_TIMER:
// if(wp == 1000){
// OutputDebugString("a");//デバッグ出力
// }
break;
case WM_COMMAND:
// switch (LOWORD(wp)){
// case IDC_BUTTON1:
// OutputDebugString("button1");//デバッグ出力
// SetWindowText(GetDlgItem(hDlg,IDC_EDIT1),"button1");//ダイアログに貼り付けたテキストに文字を入れる
// break;
// case IDC_BUTTON2:
// OutputDebugString("button2");//デバッグ出力
// SetWindowText(GetDlgItem(hDlg,IDC_EDIT1),"button2");//ダイアログに貼り付けたテキストに文字を入れる
// break;
// }
break;
case WM_CLOSE:
// KillTimer(hDlg,1000);//タイマーを破棄
EndDialog(hDlg,WM_CLOSE);
break;
}
return FALSE;
}
▲トップページ
>
Windows と C++