MFC RichEdit 实现多行显示,并自动滚屏

    CRichEditCtrl m_rheditOutputText;
    m_rheditOutputText.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);
	CString curdata = str + "\r\n";
	CHARFORMAT cf;
	ZeroMemory(&cf, sizeof(CHARFORMAT));
	cf.cbSize = sizeof(CHARFORMAT);
	cf.dwMask = CFM_BOLD | CFM_COLOR | CFM_FACE |
		CFM_ITALIC | CFM_SIZE | CFM_UNDERLINE;
	cf.yHeight = 6 * 6;//文字高度
	m_rheditOutputText.SetReadOnly(TRUE);
	cf.crTextColor = color; //文字颜色
	m_rheditOutputText.SetSelectionCharFormat(cf);
	m_rheditOutputText.SetSel(-1, -1);
	m_rheditOutputText.ReplaceSel(curdata);
想做txt阅读器时发现 richedit 的scrollbar位置(为了下次阅读方便,下次读取直接获取上次阅读位置)不好处理,使用GetScrollPos、SetScrollPos能够获取设置scorllbar位置的值,但是!SetScorllPos调用后只更新了scorllbar的位置 richedit 的内容没得到更新,google一下没有个现成的解决,只得msdn。 WM_VSCROLL重点标记一 RichEdit 的意思是“富文本编辑控件”,在Edit的基础上添加了很多功能,如对不同字体、字号、文本颜色、背景色、插入Ole对象的支持,Windows系统的写字板就是基于 RichEdit 的。这篇文章就是介绍 RichEdit 的相关知识的。 动条的属性设置是在Window节点下设置的,无论在xml里怎么样设置都不 : <Default name="VScrollBar" value="button1normalimage="file='scrollbar.bmp' source='0,90,16,106&a... m_pChatRecordListBox = ( RichEdit *)FindControl(_T("chat_form")); //初始化时加载富文本框控件,忽略 Load(); //加载完毕后直接设置 移动到底部。会出现问题,进到页面时是空白,需要移动鼠标才会出现 ((ScrollableBox*)m_pChatRecordListBox)->EndDown(); //我们可以等 RichEdit 控件加载完毕后,再设置延时移动到底部 //可以在另一个线程中添加延时Sleep,然后再执 //需要注 首先,在页面上添加两个 RichEdit 2控件,添加变量为C RichEdit Ctrl类型的m_edit1和m_edit2. 在CXXXDlg::CXXXDlg里添加: AfxInit RichEdit 2(); LoadLibrary(_T("RICHED20.DLL")); VS2019中,C RichEdit 使用不像CEdit一样,可以直接通过添加事件处理程序来对事件进 相应。默认的event mask是ENM_NONE,意味着没有讯息会发送给parent window。需要给event mask设置EN RichEdit .SelAttributes.Color := TypeAndColor.Color; RichEdit .Lines.Add(TypeAndColor.StrData + str); PostMessage( RichEdit .Handle, WM_VSCROLL, SB_BOTTOM, 0);