CEdit控件中的内容越来越多时,出现了滚动条,再用SetSel选中最后区域,界面显示混乱。

时间:2021-06-04 19:28:23
CString HistoryCmdStr;
在方法void MMLDlg::DoDataExchange(CDataExchange* pDX)中有以下语句。
DDX_Control(pDX, IDC_HISTORY_CMD, *pHistoryCmdEdit);
DDX_Text(pDX, IDC_HISTORY_CMD, HistoryCmdStr);
我的程序在下面的代码中,不断增加HistoryCmdStr字符串的内容,然后,UpdateData(FALSE),
相应的界面上的编辑框中就会同步了HistoryCmdStr中的内容,然后,调用SetSel(start,end),
其中的start,end为计算出来的最后一行的开始,结束位置。
当出现滚动条时,界面上显示的被选中的区域就有点乱了。具体讲,就是反显的区域不是我调用SetSel选择的区域。
[img=http://user.qzone.qq.com/945103301/photo/1382d6c5-b48b-48ea-a627-fa48103523ce/M5hYGtbsgETKoJzxBAcu0psD3FcU5qQAAA!!/][/img]

4 个解决方案

#1


[img=http://b34.photo.store.qq.com/http_imgload.cgi?/rurl4_b=ab6e8d86467c5e6b9a2bd11f9c730a0191f5fba6a89cc3584e61c2a8ce7e84b7928186d194ac5292cea048e6d0706836abeeb61603baa653b7fc3f8fa81afd1da7eef11d284d8e85f86da6ad3fd492bad1b20796&a=40&b=34 ][/img]

#2


请看上图,右上角:Switchplay字符串,有两处被反显,正常情况下,一个编辑框的选择区域肯定是连续的一片,怎么会出现这种不连续的情况呢?
相应的代码较多,如果有兴趣,给我QQ,我给你全套的代码。
QQ:945103301

#3


该回复于2010-05-04 21:47:01被版主删除

#4


刷新问题吧,lz设置了CEdit背景色透明???

#1


[img=http://b34.photo.store.qq.com/http_imgload.cgi?/rurl4_b=ab6e8d86467c5e6b9a2bd11f9c730a0191f5fba6a89cc3584e61c2a8ce7e84b7928186d194ac5292cea048e6d0706836abeeb61603baa653b7fc3f8fa81afd1da7eef11d284d8e85f86da6ad3fd492bad1b20796&a=40&b=34 ][/img]

#2


请看上图,右上角:Switchplay字符串,有两处被反显,正常情况下,一个编辑框的选择区域肯定是连续的一片,怎么会出现这种不连续的情况呢?
相应的代码较多,如果有兴趣,给我QQ,我给你全套的代码。
QQ:945103301

#3


该回复于2010-05-04 21:47:01被版主删除

#4


刷新问题吧,lz设置了CEdit背景色透明???