簡単なテスト アプリケーションでこれらの色を変更することができましたが、期待どおりに動作させるには慎重に検討する必要があります。
まず、ダイアログ リソースを変更して、コントロールを古い RICHEDIT として識別する必要があります。Visual Studio 2010 では、ダイアログで生成された .rc ファイルには として識別され"RichEditCtrl20Aたコントロールがあり、コントロールがそのように識別されたとき、選択色に大きな変更を加えることができませんでした。コントロール タイプを に"RICHEDIT"変更すると、機能が失われることなく、選択色を変更できました。テキスト エディターで .rc ファイルを変更し、RichEdit コントロール インスタンスを見つけて変更する必要があります。
それが完了したら、関数を使用して選択色 (実際には、はるかに多くの選択属性) を変更できCRichEditCtrl::SetSelectionCharFormatます。
私が行った簡単なテストは、新しいダイアログ ベースの MFC アプリケーションを作成し、それにリッチ エディット コントロールを追加し、上記のように RC ファイルを変更し、次の OnOK() ハンドラーを追加することでした。
void CTestMFCDlg::OnBnClickedOk()
{
m_rec.SetWindowText("This is a test of stuff");
m_rec.SetFocus();
CHARRANGE cr;
cr.cpMin = 0;
cr.cpMax = 16;
m_rec.SetSel(cr);
CHARFORMAT2A cf;
m_rec.GetSelectionCharFormat(cf);
cf.dwEffects = 0;
cf.dwMask = CFM_BACKCOLOR | CFM_COLOR | CFM_FACE;
cf.crBackColor = 0;
cf.crTextColor = RGB(15, 15, 255);
strcpy(cf.szFaceName, "Times New Roman");
m_rec.SetSelectionCharFormat(cf);
}
このハンドラーが配置されると、ダイアログで [OK] を押すと、リッチ エディット コントロールが入力され、最初の 17 文字が選択され、選択の強調表示色が変更されます。
この関数に関するドキュメントは、MSDNで見つけることができます。