分かったので、文字の最小位置と最大位置で選択する方法はわかりましたが、テキストを追加する場合は、テキストを再検索して選択を更新する必要があります。だから私は検索していて、FindTextExを使用して単語、最小/最大検索位置を入力すると、その単語の最小/最大が返されることがわかりました。
しかし、それは常に失敗し、理由はわかりません.MSDNは逆方向検索でFR_DOWNを使用するように言っていますが、(WPARAM)属性として入力すると、未定義であると表示されます(FindTextExページにリストされている他のFR_の50%のように) )
RichEdit.h が含まれています (現在、私のプログラムは大きすぎてソース コード全体を投稿できないため、これは単なる関数です)
void UpdateLog() {
CHARFORMAT CharFormat;
CharFormat.cbSize = sizeof(CHARFORMAT);
CharFormat.dwMask = CFM_BOLD | CFM_EFFECTS;
CharFormat.dwEffects = CFE_BOLD | CFE_AUTOCOLOR;
std::wstring szUpdatesString;
szUpdatesString += L"SQL Manager V1.3 - Trevin Corkery\r\n\r\n";
szUpdatesString += L"New:\r\nAdded \"Information\" Tab\r\n\r\n";
szUpdatesString += L"Improvements:\r\n\r\n";
szUpdatesString += L"Fixes:\r\nTabs now work correctly.\r\n";
SetWindowText(hUpdatesRE, szUpdatesString.c_str());
CHARRANGE CharRange = { 0 };
FINDTEXTEX FindTextExtended;
FindTextExtended.chrg.cpMin = 0;
FindTextExtended.chrg.cpMax = -1;
FindTextExtended.lpstrText = L"New";
SendMessage(hUpdatesRE, EM_FINDTEXTEX, FR_NOT_ENUM, (LPARAM)&FindTextExtended);
SendMessage(hUpdatesRE, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&CharFormat);
}