当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·非典下的婚礼    »显示摘要«
    摘要: 非典下的婚礼               (一) 我和赵去领结婚证的时候,我才仔细的看了看他,他很瘦,个子不是很高,眼 睛是蓝色的,很像一个混血,头发象极了那个作曲的三宝,长长的,我很喜欢, 决定嫁他的一霎那,就是缘于他的头发,我喜欢长发的男人。               (二) 我们是在桥西区中山路52号所里领的,就是国贸对过的那个,过程很简单,只 记得是拿了证,发了糖,最后一个漂亮的......
 ·我用:select * from log    »显示摘要«
    摘要: set rs=server.createobject("adodb.recordset") sql = "select * from log_user where user_acc="&user_acc_txt&"" rs.open sql,conn,1,3 user_acc_txt是变量 ......


高分如何向RichEditView中添加文本而不用ReplaceSel()函数

我要添加的文本是从文件中一个个读出来的,读出来的文本追加在最后,而光标的的位置(Caret)则是要表示用户要进行操作的文本,比如更改,变字体等,是不能改变的,如何实现这种效果?  
      用下面的方法不好:即先用GetSel得到原来的位置,用SetSel()把光标设到最后,用ReplaceSel加入文本后再用SetSel()放回原来位置。  
      原因是用SetSel导致窗口重画,并使右边的滚动条自动滚动到光标的位置,而不能看见新加入的字符了。  
      如何能够解决?谢谢!

NO.1   作者: uhlan

int   iTotalTextLength   =   GetRichEditCtrl().GetWindowTextLength();  
  GetRichEditCtrl().SetSel(iTotalTextLength,   iTotalTextLength);  
  GetRichEditCtrl().ReplaceSel(strMsg);  
  GetRichEditCtrl().ReplaceSel("\r\n");  
   
  int   iStartPos   =   iTotalTextLength;  
  int   iEndPos   =   GetRichEditCtrl().GetWindowTextLength();  
  GetRichEditCtrl().SetSel(iStartPos,   iEndPos);  
   
  CHARFORMAT   cf;  
  cf.cbSize =   sizeof(CHARFORMAT);  
  cf.dwMask =   CFM_COLOR   |   CFM_UNDERLINE;//   |   CFM_BOLD  
  cf.dwEffects =(unsigned   long)   ~(   CFE_AUTOCOLOR   |   CFE_UNDERLINE);//   |   CFE_BOLD  
  cf.crTextColor =   clRGB;//RGB(0,   0,   0);  
   
  GetRichEditCtrl().SetSelectionCharFormat(cf);  
   
  GetRichEditCtrl().SetSel(iEndPos,iEndPos);  
   
  GetRichEditCtrl().LineScroll(1);

NO.2   作者: free_card

focus

NO.3   作者: east0323

你把以前的光标位置(你好|你好)保存了,添加文字后再用SetSel(nOldStartchars,nOldEndChars)把以前的位置选中就可以了。

NO.4   作者: east0323

向RichEditView中添加文本而不用ReplaceSel()函数,你还可以用StreanIn()函数,如果你有msdn的话,很容易查到它的用法。


 ·到底是容易还是难,在线等待,    »显示摘要«
    摘要: 我现做一个报表定位打印程序.就是工商的内容打印.打印的内容必须对准工商执照上面填写的内容,可是我写的程序打印的内容总不能对准工商执照的位置,请高手赐教.我用的是delphi的quickrep控件,应如何设置.谢谢 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE