私は CRichEditCtrl を使用してコンピューター言語を編集しています。それを変更するたびに、テキストの CharFormat を変更して構文を強調しています。(例: コメントは緑で、セクションの見出しは大きなフォントで、コンパイル エラーは別のフォントで、など)
それはすべてうまくいっているように見えます。
ただし、いくつかの奇妙な問題があります。1 つは、CRichEditCtrl の取り消しバッファーに、ユーザー イベントだけでなく、SetSelectionCharFormat への呼び出しも含まれていることです。たとえば、ユーザーが行頭に「#」を入力すると、その行がコメントになります。その後、ソフトウェアによって自動的に緑色に変わります。ユーザーが ctrl-z を試みると、線が黒に戻ります。もう 1 回 ctrl-z を押すと、彼の「#」が削除されます。 SetSelectionCharFormat() の変更が元に戻すバッファに入らないようにするにはどうすればよいですか?