C++で開発したアプリケーションのテキスト表示問題
タイトル: C++で開発したアプリケーションのテキスト表示問題
説明:
私はC++を使用してWindows 11上のアプリケーションを開発しています。開発環境はMinGWでコンパイルしており、エディターにはVSCodeを使用しています。問題は、アプリケーション内の文字がギザギザに表示されることですが、タイトルバーの文字は正常に綺麗に表示されています。
-
ディスプレイ設定:
- 拡大/縮小: 175%
- 解像度: 1920x1080(推奨)
- ディスプレイタイプ: 4K
以下のコードは、アプリケーションのステータスバーを設定する部分です。CreateWindowEx
を使用してステータスバーを作成し、カスタムフォント(Segoe UI, 9pt)を適用しています。しかし、これらの設定後でも、文字がギザギザになってしまいます。
// ステータスバーの作成
hWndStatusBar = CreateWindowEx(
0, STATUSCLASSNAME, NULL,
WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP,
0, 0, 0, 0, hwndParent, (HMENU)1, GetModuleHandle(NULL), NULL);
// エラーハンドリング
if (!hWndStatusBar) {
MessageBox(NULL, L"Failed to create status bar", L"Error", MB_OK | MB_ICONERROR);
}
// カスタムフォントの設定
hCustomFont = CreateFont(
-MulDiv(9, GetDpiForWindow(hwndParent), 72),
0, 0, 0, FW_NORMAL, FALSE, FALSE, 0,
DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
CLEARTYPE_QUALITY, DEFAULT_PITCH | FF_SWISS, L"Segoe UI");
// ステータスバーにフォントを適用
SendMessage(hWndStatusBar, WM_SETFONT, (WPARAM)hCustomFont, TRUE);
// ステータスバーの再描画
InvalidateRect(hWndStatusBar, NULL, TRUE);
この問題に関して何かアドバイスや解決策があれば、ご教示いただけると幸いです。
0 likes