デバッグをしてみたのですが他のウィンドウをクリックすると、
ダイアログボックスが薄く表示されてウィンドウの背後へ隠れてしまいます。
ダイアログのプロシージャで、
case WM_COMMAND:
wmId = LOWORD( wParam );// パラメータ数値を代入
switch ( wmId )
{
case IDM_EXIT:// アプリケーション終了
EndDialog( hWnd, IDOK );
break;
case IDM_BEFORE:// 常に手前に表示
// チェックされているかチェック
uState = GetMenuState( hMenu, IDM_BEFORE, MF_BYCOMMAND );
if( uState & MFS_CHECKED )
{
// チェックされてたからはずす
CheckMenuItem( hMenu, IDM_BEFORE, MF_BYCOMMAND | MFS_UNCHECKED );// メニューのチェックマークの表示を変更
SetWindowPos( hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );// 常に手前じゃない
}
else
{
// チェックされてなかったからチェックする
CheckMenuItem( hMenu, IDM_BEFORE, MF_BYCOMMAND | MFS_CHECKED );// メニューのチェックマークの表示を変更
SetWindowPos( hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );// 手前に表示
EnableWindow( hWnd, TRUE );
}
break;