@ny31123

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

C++で開発したアプリケーションのテキスト表示問題

タイトル: C++で開発したアプリケーションのテキスト表示問題a637d058c98075d43e469526990f04c7.png

説明:
私は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

1Answer

Your answer might help someone💌