次のようにします
1.ウインドウを検索
FindWindow関数でウインドウを検索します。
2.発見したらウインドウをアクティブにしてフォーカスを移す
このまま終了したのではあまりにも不親切なので、発見したウインドウにフォーカスを移します。このとき「2重起動できません」というメッセージボックスを表示してもいいかもしれません。
ShowWindow関数でウインドウをアクティブにしてSetForegroundWindow関数でフォーカスを移します。
そしてアプリケーションを終了します。
次に実際のコードを示します。
//二重起動禁止
if((hInst=FindWindow(szClassName,szAppName)) != NULL)
{
ShowWindow(hInst,SW_RESTORE); //ウインドウをアクティブにする
SetForegroundWindow(hInst); //ウインドウにフォーカスを移す
return FALSE; //アプリケーションを終了
}
また、このコードはWinMain関数中の一番最初に実行するようにします。