CRichEditCtrl滚动条的移动问题~~~~~急急急急急急急急急急~~~在线等~~~~

anonimousboy 2003-03-28 12:00:43
LineSCroll()函数多次调用的时候,只有第一次调用的时候,才能滚动到正确的位置,再次调用的时候,就会位置错乱~~大哥~~~赶快给各指点啊~~~~
...全文
37 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmvr 2003-03-28
  • 打赏
  • 举报
回复
我用了,没问题啊,要注意参数是相对的,以下代码供参考:
void CRichEditProxy::ScrollToSelected(CString keyword)
{
CString Line;
char buffer[256];
int linetojump;
int totalLine=m_predit->GetLineCount();
int currentPos=0;
for (int i=0;i<totalLine;i++)
{
m_predit->GetLine(i,buffer,256);
Line=buffer;
currentPos+=Line.GetLength();


if (Line.Left(2)=="LT" && Line.Find(keyword)!=-1 &&Line.Mid(5,keyword.GetLength())==keyword)
{

linetojump=i-m_predit->GetFirstVisibleLine()-1;
m_predit->LineScroll(linetojump);
//m_predit->SetSel(0,-1);

m_predit->SetSel(currentPos-keyword.GetLength()-1,currentPos-1);
m_predit->HideSelection(false,false);
break;
}
}


}
coyer 2003-03-28
  • 打赏
  • 举报
回复
CSize sizeTotal;

sizeTotal.cx =(int)(w*scale);
sizeTotal.cy =(int)(h*scale);
SetScrollSizes(MM_TEXT, sizeTotal);

重新设置大小后,再用setScrollPos来解决问题.
happyganjie 2003-03-28
  • 打赏
  • 举报
回复
有这样的问题,你好好看看MSDN,实在不行的话,你可以直接用CWnd::SetScrollPos试试
,我也有个问题问你,在CRichEditView里如何控制行间距

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧