我在OpenFC中用richedit实现了语法高亮功能,但窗口闪烁,该如何解决?实现过程及问题是这样的:在收到窗口更新消息时,保存窗口当前状态,对代码着色,恢复窗口原状态,但窗口闪烁。OpenFC演示下载:http://xoomer.virgilio.it/forcal/xiazai/forcal9/openfc32w.rarOpenFC代码下载:http://xoomer.virgilio.it/forcal/xiazai/forcal9/forcal9code.rar

解决方案 »

  1.   


    的确是SetFocus的问题。问题解决了,非常感谢!还有一个与此相关的问题:加入了语法高亮功能后,撤销和恢复都不能用了,该怎么办?
      

  2.   

    对代码着色,richedit会记录这些过程,因而撤销和恢复失效。
    如果能设置richedit不记录代码着色过程,撤销和恢复功能应当是有效的。
    即:代码着色前,设置richedit不记录窗口内容的更改;代码着色后,恢复richedit记录窗口内容的更改。
    是否有设置或恢复richedit记录窗口内容的更改的消息?
      

  3.   

    对代码着色,richedit会记录这些过程,因而撤销和恢复失效。 
    如果能设置richedit不记录代码着色过程,撤销和恢复功能应当是有效的。 
    即:代码着色前,设置richedit不记录窗口内容的更改;代码着色后,恢复richedit记录窗口内容的更改。 
    是否有设置或恢复richedit记录窗口内容的更改的消息?如果确实没有办法,就只好自己实现撤销和恢复的代码了?