0

初めての投稿なので、不適切なエチケットがある場合はご容赦ください。

私のタイトルは、私が抱えている問題を簡単に説明しています。単一のドキュメント ビューを持つ MFC アプリケーションから開始する学校のプロジェクトがあり、ビューに単純なテキストだけを表示する必要がありますが、このテキストは単純な INI ファイルから取得されます。

LPCTSTR path = _T("C:\\Users\\Steve\\Documents\\WhereDataIs.ini");
TCHAR INIValue[256];
GetPrivateProfileString(_T("SETUP"), _T("Introduction"), _T("File Could Not Be Found"), INIValue, 256, path);

さて、私のiniファイルにはこれだけが含まれています...

[SETUP]

Introduction = Here is your data

ここまでは、すべて順調です。次のステップは、リソース エディターで作成した「静的テキスト ボックス」を取得し、それを ini からのデータに変更することです。

SetDlgItemText(StringToChange, INIValue);

これは完璧に機能します。だから私は自分が望んでいたものをどうにか変更することができましたが、今は難しい部分です. 使用する前に文字列全体を太字にする必要があります

SetDlgItemText(StringToChange, INIValue);

この 5 日間で非常に多くの問題に遭遇しました。私はグーグルとスタックオーバーフローで遭遇したすべてを試しました。RTF コントロールを使用しようとして遭遇しましたか? それを太字にしてから戻ってくるhtmlに変換しようとしていますか?8ビットまたは16ビットの問題?ユニコードまたはそれらの線に沿ったもの。_T("some string") のようなマクロに出くわしましたが、これは文字列型の変数を取らないようです。私にとっては何もうまくいきませんでした。私が実際に使用できるのは、ある種の例であり、私のものに関連する必要はまったくありません。ベースを使って作業できるもの。そして、あなたが私を別のウェブサイトや以前の投稿にリンクする前に、私はすでにそれを見て試したことを保証します. 私が始めるのを助けるために、誰かがコードの小さな部分を投稿してくれることを本当に望んでいます.

4

1 に答える 1

1

必要なものを実現するには、太字のフォントを使用する必要があります。

 m_font.CreateFont(16, 0, 0, 0, FW_BOLD, FALSE, FALSE, 0, DEFAULT_CHARSET,
 OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, 
 DEFAULT_PITCH | FF_SWISS, _T("MS Sans Serif"));
 m_YourStaticControl.SetFont(&m_font); 

クラスのメンバーを作成CFont m_font;します(ヘッダーファイルに入れます)。

より柔軟性が必要な場合は、RichEdit コントロールを使用してください。さまざまなスタイルを使用してテキストを追加するヘル​​パー関数を次に示します。

void AddToRichText(CRichEditCtrl &rEdit, const CString& sNewText, COLORREF color, BOOL bBold, BOOL bUnderline, BOOL bItalic)
{
    int iTotalTextLength = rEdit.GetWindowTextLength();

    rEdit.SetSel(iTotalTextLength, iTotalTextLength);

    CHARFORMAT cf;
    cf.cbSize = sizeof(CHARFORMAT);
    cf.dwMask = CFM_COLOR | CFM_UNDERLINE | CFM_BOLD | CFM_ITALIC;

    DWORD dwEffects = CFE_AUTOCOLOR;
    if (!bBold)
        dwEffects |= CFE_BOLD;

    if (!bUnderline)
        dwEffects |= CFE_UNDERLINE;

    if (!bItalic)
        dwEffects |= CFE_ITALIC;

    cf.dwEffects = (unsigned long)~dwEffects;

    cf.crTextColor = color;
    rEdit.SetSelectionCharFormat(cf);

    rEdit.ReplaceSel(sNewText);
    rEdit.HideSelection(TRUE, FALSE);
}
于 2016-05-25T05:47:55.950 に答える