关于RICHEDIT滑动条不能同步移动问题

龍之印 2013-08-13 10:24:13
如题,如何使得RICHEDIT控件的右侧滑动条能和编辑框内容同步移动,现在我的代码只能让编辑框内容始终显示到最后一行,但是右边滑轮始终在最上边,即使我手动拖拽它,鼠标一松,它又回到上面。本人刚接触MFC,很多不懂,求高人解答。
如图:


代码:
OnInitDialog()中
	//richedit
AfxInitRichEdit();
m_editSysLog.ShowScrollBar(TRUE);
m_editMetLog.ShowScrollBar(TRUE);
m_editMetLog.SetReadOnly(TRUE);
m_editSysLog.SetReadOnly(TRUE);

业务实现中
//打印报文
LRESULT CCilicCRMDlg::OnShowFrame(WPARAM wParam, LPARAM lParam)
{
CString* pStr = (CString*)lParam;
m_editMetLog.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);
m_editMetLog.SetSel(-1, -1);
m_editMetLog.ReplaceSel((LPCTSTR)*pStr);
m_editMetLog.ReplaceSel("\n");
if(!m_editMetLog.IsWindowVisible())
{
return TRUE;
}
return 0 ;
}
...全文
169 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
龍之印 2013-08-14
  • 打赏
  • 举报
回复
引用 8 楼 lin98666lin 的回复:
有效果 是指 已经可以滚动到底部了吧?.
是的,我把m_editMetLog.showscrollbar(TRUE); 注释了,在creat时候添加了滑动条属性和自动滑动属性,结果可以了,感谢。
龍之印 2013-08-13
  • 打赏
  • 举报
回复
求大神解释。
龍之印 2013-08-13
  • 打赏
  • 举报
回复
求大神解释。
龍之印 2013-08-13
  • 打赏
  • 举报
回复
求大神解释。
only_delusion 2013-08-13
  • 打赏
  • 举报
回复
有效果 是指 已经可以滚动到底部了吧?.
only_delusion 2013-08-13
  • 打赏
  • 举报
回复
m_editMetLog.showscrollbar(TRUE); 属于m_editMetLog的 没办法直接获取进行控制,可以向richedit发送消息控制,例如你用的那个 滚动到底,还有滚动一行什么的, 也可以用setscrollpos函数设置。 看你个人爱好了。
龍之印 2013-08-13
  • 打赏
  • 举报
回复
引用 5 楼 lin98666lin 的回复:
m_editMetLog的create中 是否有加 ws_vscroll 属性?
按照你说的,我改了下程序
if(m_editMetLog.Create(ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_NOHIDESEL | ES_WANTRETURN | WS_VSCROLL  | WS_HSCROLL | WS_GROUP | WS_TABSTOP|WS_EX_CLIENTEDGE ,CRect(0,0,0,0),&m_MPCC2,3007)==0 ||
		m_editSysLog.Create(ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_NOHIDESEL | ES_WANTRETURN | WS_VSCROLL  | WS_HSCROLL | WS_GROUP | WS_TABSTOP|WS_EX_CLIENTEDGE ,CRect(0,0,0,0),&m_MPCC2,3008)==0)
		return -1;
确实有效果,非常感谢。但是我主窗口并没有ws_vscroll属性,我用m_editMetLog.showscrollbar(TRUE);show出来的滑动条到底是属于谁的,为什么操控不了它了???
only_delusion 2013-08-13
  • 打赏
  • 举报
回复
m_editMetLog的create中 是否有加 ws_vscroll 属性?
only_delusion 2013-08-13
  • 打赏
  • 举报
回复
试试吧..你的richedit真的有滚动条么? 我很怀疑 右侧的滚动条不是richedit的,而是主窗口的 你主窗口创建的时候 去掉滚动条属性,richedit创建的时候 加上滚动条属性,没有道理 会出问题
//打印报文
LRESULT CCilicCRMDlg::OnShowFrame(WPARAM wParam, LPARAM lParam)
{
    CString* pStr = (CString*)lParam;
    m_editMetLog.AppendText((LPCTSTR)*pStr);
    m_editMetLog.AppendText("\n");
     m_editMetLog.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);
    if(!m_editMetLog.IsWindowVisible())
    {
        return TRUE;
    }
    return 0 ;
}

15,979

社区成员

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

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