3

C++ で書かれた古いアプリケーションを入手しました。経験はありませんが、アプリにいくつかの変更を加える予定です。そのうちの 1 つは、一部のテキストを変更することです。問題は、更新されたテキストの一部を太字にする必要があることですが、その方法がわかりません。私はグーグルで検索しましたが、あまり成功しませんでした。\nで新しい行に移動し、 で新しいタブに移動するだけだと思います\t

賢いアドバイスはありますか?

編集:
コードの例:

BEGIN
    STRING1                              "First Example"
    STRING2                              "Second Example"

STRING1 が使用されている場所:

// WelcomeTip ---------------------------------------------//
    LPSTR idsWelcomeTip = (LPSTR)GlobalAlloc(GPTR, sizeof(CHAR) * 4098 );
    LoadString( waveInDlg->hInstance, STRING1, idsWelcomeTip, 4098 );
    waveInDlg->hwndWelcomeTip = CreateWindow(
        "STATIC",
        idsWelcomeTip,
        WS_CHILD | WS_VISIBLE | SS_LEFT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        waveInDlg->hwnd,
        NULL,
        waveInDlg->hInstance,
        NULL
    );
    SetWindowLongPtr(waveInDlg->hwndWelcomeTip, GWLP_USERDATA ,(LONG)waveInDlg );
    SendMessage(waveInDlg->hwndWelcomeTip, WM_SETFONT , (WPARAM)waveInDlg->hFontDefault , TRUE );
    ShowWindow(waveInDlg->hwndWelcomeTip, SW_HIDE);
    GlobalFree( (HGLOBAL)idsWelcomeTip );

ありがとう、
イル

4

4 に答える 4

11

C++ には太字テキストの概念はありません。たとえば、リッチ テキスト形式や HTML タグ付け、端末画面など、文字テキストを表示する特定のデバイスに太字テキストがある場合があります。後者は通常、その特定の端末に関連する「エスケープ シーケンス」を送信する必要があります。

于 2010-10-26T08:50:24.327 に答える
3

OK、私はあなたが求めているものの概要を示すはずのいくつかのコードをノックアップしました、私はテストするためにもっとたくさん書く必要があるのでそれをコンパイルすることができませんでした、しかしそれはあなたを正しい方向に向けるはずです方向:

// Create the font you need
LOGFONT lf;
zeromemory(&lf, sizeof(LOGFONT))
lf.lfHeight = 20; // 20 pixel high font
lf.lfWeight = FW_BOLD;
strcpy(lf.lfFaceName, "Arial");
HFONT hFont = ::CreateFondIndirect(&lf);

// Set the control to use this font
SendMessage(waveInDlg->hwndWelcomeTip, WM_SETFONT, (WPARAM)hFont, NULL);

これがお役に立てば幸いです。

于 2010-10-26T09:18:37.960 に答える
0

ヘルプについては、以下のリンクを参照して ください http://msdn.microsoft.com/en-us/library/dd162499(VS.85).aspx

はい、ダイアログ クラスで WM_PAINT をオーバーライドし、drawtext 関数を呼び出す必要があります。

于 2010-10-27T07:39:45.047 に答える
-1

WM_PAINT メッセージ ハンドラで DrwaText API を使用します。dc.DrawText (_T ("Hello, MFC"), -1, &rect, DT_SINGLELINE ¦ DT_CENTER ¦ DT_VCENTER); DrawTextEx メソッドを使用します。詳細については、次のリンクを参照してください。

ms-help://MS.MSDNQTR.v90.en/gdi/fontext_4pbs.htm

于 2010-10-26T10:41:17.457 に答える