0

ドメインの強調表示に似た何かを達成しようとしています。IE のドメイン ハイライト機能のように、リッチ エディット ボックスのテキストの一部を別の色にしたいと考えています。

EM_EXSETSEL問題: 最初に を使用して必要なテキストを選択し、次に適用する必要があることはわかっていますEM_SETCHARFORMAT

EM_EXSETSEL必要な操作を実行すると、必要なテキストが適切に選択されます。ただし、を実行してもEM_SETCHARFORMAT、選択したテキストに変更はありません。

ウィンドウは RICHEDIT_CLASS を使用して作成されます。

どんな助けでも大歓迎です。

4

1 に答える 1

0

このようなものはどうですか(現在の選択に太字の赤いテキストを設定するには):

   // Set up the CHARFORMAT structure
   CHARFORMAT cfm;
   cfm.cbSize = sizeof(cfm);    // Don't forget this!

   // Get char format
   ::SendMessage(hWnd, EM_GETCHARFORMAT, SCF_SELECTION, (LPARAM)&cfm);

   // Set the new effects
   cfm.dwEffects   = CFE_BOLD;
   cfm.crTextColor = RGB(255,0,0);
   cfm.dwMask      = CFM_BOLD | CFM_COLOR;

   // Set the new format
   ::SendMessage(hWnd, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cfm);

ここで、hWnd はリッチ エディット コントロールのウィンドウ ハンドルです。

そうでない場合...コードを投稿して、どこが間違っているのかを確認してください...

于 2012-11-21T15:43:36.923 に答える