クラス::InitInstance()
{
HANDLE hMutex;
/****** ミューテックス作成 ******/
hMutex = CreateMutex(NULL, TRUE, "aiueo");
if ( GetLastError() == ERROR_ALREADY_EXISTS ){
AfxMessageBox( "既に起動しています。" );
// ①ここにアクティブ処理??
return FALSE;
}
/****** ミューテックス解放 ******/
ReleaseMutex(hMutex);
return FALSE;
}
アプリケーションの二重起動を上記のように防止していますが、
"既に起動しています。"のメッセージダイアログ表示後、すで
に起動しているダイアログをアクティブにしたいのですが、ど
のようにしたらよいでしょうか。
宜しくお願い致します。
アプリケーションの2重起動を防止するには?
http://techtips.belution.com/ja/vc/0025/
の
さらにウィンドウをアクティブ化するには?
を参考にしてください。
ダイアログのタイトルで対象のウィンドウハンドルを取得できるようであれば、
それを使ってもいいかとおもいます。
HWND hWnd = ::FindWindow("#32770", "ダイアログのタイトル");
ちなみにダイアログのクラス名を独自のクラス名に変えることも可能です。
[Microsoft サポートオンライン]MFC ダイアログ ボックスの独自のウィンドウ クラス名を指定する方法。
http://support.microsoft.com/default.aspx/kb/251059/ja
お返事ありがとうございました。
下記のように初期のダイアログクラス名"#32770"とダイアログのタイトル
を使用してウィンドウハンドルを取得し、実現することができました。
ありがとうございました。
すみません。"下記のように"は間違いです。
ツイート | ![]() |