极度深寒的问题: 如何设置RichEdit控件选中文字时候的背景色为白色,前景色为黑色,这样我就实现..... (50分)

A

alaclp

Unregistered / Unconfirmed
GUEST, unregistred user!
超难问题: 如何设置RichEdit控件选中文字时候的背景色为白色,前景色为黑色,<br>这样我就实现无闪烁的更改我认定的关键字的色彩,从而编写出一个类似高亮<br>程序编辑器的东东,不知各位有何种办法实现?<br>我认为实现起来几乎不可能,但是又不甘心,还请WinApi高手显显神通........<br>在此不胜感激
 
好像连word都不能设置字的背景色。
 
用RxRichEdit可以很方便做到这一点!具体方法可以看RxLib for D5的Demo,for D6好象没带Demo。<br>
 
SelAttributes不行吗?
 
看了看RxLib for D5的Demo可以实现你的要求,我已把它改为可在d6下运行。
 
有没有免费的语法高亮编辑器?<br>mwCustomEdit也要收费(商业用途),<br>哎,囊中羞涩啊,要不就买它一套了
 
如果你从TCustomMemo中继承的话,你可以自己处理WM_PAINT消息来显示不同的颜色,<br>我以前试着写过一个类似mwCustomEdit的控件,就是这么做的,还没有完成,现在换了<br>公司,那个源码也找不到了。
 
mwCustomEdit是从TCustomControl继承的;<br>但是它的实现代码实在是搞不懂,读起来<br>很困难,所以我才想到这个办法。<br>难道真的实现不了吗?<br>
 
那么如何截获系统颜色或者调色板信息发生变化?<br>以及变化为什么颜色?
 
问题提前[:(]
 
问题解决了,用GetSysColor和SetSysColors函数,更改Windows外观中<br>选中项目的背景色和前景色.<br>但是,这样所有窗口选中项目的背景色和前景色都变化了,<br>不知道如何让指定窗口(TEdit)选中文字的背景色和前景色<br>为指定颜色?<br>高手请帮帮忙![:(]
 
linsb:<br>&nbsp;你有RxLib的正式版本吗?能够给我mail一个
 
现在是讨论选中颜色,不是正常时的颜色。<br><br>比较难,好像这样做没必要。<br><br>所说的“实现无闪烁的更改我认定的关键字的色彩”不太明白,难道默认的其他颜色<br>就会闪烁吗?
 
回复hamsoft:<br>&nbsp; &nbsp; 我的意思是当我进行行的关键字扫描<br>的时候,程序自动选中关键字和非关键字;<br>关键字设置蓝色,非关键字设置黑色;<br>&nbsp; &nbsp; 但因为程序选中文字的时候背景为黑色,<br>而当不选择文字的时候背景又恢复为白色.<br>在这种背景色彩相差很大的情况下,就会看到<br>文字的闪烁.<br>&nbsp; &nbsp; 我指的不是设置好颜色的字会闪烁
 
Ok, 问题解决了<br>原来是:<br>&nbsp;MyRichEdit.HideSelection := True/False;<br><br>看来,越难的问题反而有简单的解决方法,谢谢各位的参与!!!![:D]<br>请收分吧
 
RxLib2.75 for D6<br>http://www.playicq.com/dispdoc.asp?id=94<br>http://vcl.vclxx.org/DELPHI/D32FREE/RX275D6.ZIP<br>http://delphi.mychangshu.com/dispdoc.asp?id=372<br>ftp://ftp.xxtax.gov.cn/delphi/<br>
 
我觉得HideSelection只有在失去焦点的时候才有用啊,当前控件得到焦点的时候是不起<br>作用的啊...
 
顶部