0

7、8、および10をターゲットとするWindows 7システムでWindows(MFCまたはQtなし)win32アプリを作成しています。

私のアプリは、Aero が有効になっているかどうかを検出し、Aero と非 Aero の両方を正しく処理しますが、OS に視覚スタイルがない場合(つまり、[パフォーマンスコントロール パネルの [オプション] ダイアログ)。

アプリケーションがテーマなしで起動さIsAppThemedれているかどうかを検出できますが、スタイルを有効にしてウィンドウを直接作成する方法や、スタイルを強制的に有効にする方法がわかりません..これは私が試したもので、機能していません:

  case WM_CREATE: {
    if (IsAppThemed() == FALSE) {
      // No visual style is applied
      SetThemeAppProperties(STAP_ALLOW_NONCLIENT | STAP_ALLOW_CONTROLS);
      SendMessage(hWnd, WM_THEMECHANGED, 0, 0);
      RedrawWindow(hWnd, 0, 0, RDW_UPDATENOW);
    }
  } break;

さえない

SetWindowTheme(hWnd, 0, 0);
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);

働きました。

スタイルが無効になっていることを検出した場合、スタイルを強制的に有効にするにはどうすればよいですか?

4

1 に答える 1