○ダイアログ2
他ウィンドウからダイアログを表示させた場合モードレスとなります

//ダイアログのリソースを挿入してください。
//後は、このソースを実行するだけでダイアログベースでアプリケーションが作成できます。
//TABSTOPの動作を止める場合はif(!IsDialogMessage(hDlg,&msg))をコメントアウトしてください
//他のウィンドウからダイアログが作成される場合、TABSTOPが動作しませんので
//メイン関数のループの中を以下のように変更する必要があります
//if(!(IsDialogMessage(hWnd,&msg)||IsDialogMessage(hDlg,&msg))){//タブキーでコントロールを移動したくない場合はこの行をコメントする
//	TranslateMessage(&msg); 
//	DispatchMessage(&msg); 
//}





#include <windows.h>
#include "resource.h"

BOOL CALLBACK DlgProc1(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hCurInst,HINSTANCE hPrevInst,
					LPSTR lpsCmdLine,int nCmdShow ){

						
	HWND hDlg;
	hDlg=CreateDialog(hCurInst,MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DlgProc1);
	ShowWindow(hDlg,SW_NORMAL);					
						
	MSG msg;
	BOOL bRet;

	while((bRet = GetMessage(&msg,NULL,0,0)) != 0){
		if(bRet == -1){
			MessageBox(NULL,"GetMessage ERR","Error",MB_OK);
			break;
		}else{
			if(!IsDialogMessage(hDlg,&msg)){ //TABキーでコントロールを移動に必要
				TranslateMessage(&msg); 
				DispatchMessage(&msg); 
			} 
		}
	}
	return (int)msg.wParam;
}

//ダイアログプロシージャー
BOOL CALLBACK DlgProc1(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);
			DestroyWindow(hDlg);
			PostQuitMessage(0);
		break;
	}
	return FALSE;
}




▲トップページ > Windows と C++