標準の情報アイコンを表示する必要があるダイアログボックスがあります。これが私のRCコードです:
ICON "",IDC_ICON_INFORMATION,18,70,21,20
WM_INITDIALOGメッセージを次のように処理します。
HICON aIcn = LoadIcon(NULL, IDI_INFORMATION);
SendDlgItemMessage(m_hWnd, IDC_ICON_INFORMATION, STM_SETICON, (WPARAM) aIcn, 0);
すべてが96DPIで正常に機能します。静的コントロールは、32x32ピクセルのアイコンを表示します。
ただし、より高いDPIに切り替えると(デスクトップを右クリックして[画面の解像度]を選択し、[作成]またはその他のアイテムを拡大または縮小することで)、アイコンが拡大縮小されません。他のすべてがうまく拡大縮小されるため、アイコンは隣接するテキストよりも視覚的にはるかに小さく見えます。144 DPI(150%)では、アイコンのサイズは48x48ピクセルになると思います。XMLマニフェストを使用して、アプリケーションをDPI対応として宣言しました。
最も気の毒なことは、私が自分のカスタムメイドのアイコン(これもRCファイルからのもの)を使用すると、すべてが完全にスケーリングされることです。さらに、フラグを使用しMessageBox
て呼び出された関数は、アイコンの拡大縮小バージョンも表示します。MB_ICONINFORMATION
これらの考えを踏まえて、私は次のことを想定しています。
- スタイル付きの静的コントロールは、
SS_ICON
拡大縮小されたバージョンのアイコンを表示できます。 - 標準の情報アイコンを含むアイコンリソースには、拡大縮小されたバージョンのアイコン(48x48)があります。
それでは私は何を間違っているのですか?