如何控制窗口中多行CEdit的显示位置

xb4270293 2003-08-17 03:13:40
数据显示窗口,利用多行Edit控件,显示滚动数据。
由于CEdit带有ScrollBar,希望每增加一行文字,自动滚动到最后一行,找遍了MSDN中CEdit的函数,也没合适的,怀疑可能是它的父类中,不过CEdit的父类是CWnd,更晕!
又用 CScrollBar *pScrollBar = m_Edit->GetScrollBar(SB_VERT);希望通过pScrollBar来控制(SetScrollPos(nLastLine)) ,但是跟踪显示每次pScrollBar都是空。

...全文
164 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lf_77 2003-08-17
  • 打赏
  • 举报
回复
我也急需知道答案
zhaolaoxin 2003-08-17
  • 打赏
  • 举报
回复
gz
hakeman 2003-08-17
  • 打赏
  • 举报
回复
用CEditView和CDocument 這兩個結合不是更好?
jinjiling 2003-08-17
  • 打赏
  • 举报
回复
我也要同样的功能,但是没有找到
我最后计算了每行显示的最大文本数量
然后通过程序判断回车个换行来解决的
awant2k 2003-08-17
  • 打赏
  • 举报
回复
CEdit::GetLineCount
int GetLineCount( ) const;


CEdit::LineScroll
void LineScroll( int nLines, int nChars = 0 );

xtuzi 2003-08-17
  • 打赏
  • 举报
回复
awant2k(一点通的)方法能满足你的要求阿
响应OnUpdateChange
先GetLineCount,然后LineScroll
xb4270293 2003-08-17
  • 打赏
  • 举报
回复
awant2k(一点通) 的方法好使;
由于在一个浮动窗口中显示程序运行状态,因此,不便使用CEditView和CDocument,

此外,如何将变量与CEdit绑定,由于不是在对话框中, 无法使用DDX,
每次添加一行,都要SetWindowText(),
我的方法是所有信息行保存在一个CStringArray中,刷新显示时
SText += m_SInfos.GetAt(i) + _T("\n");通过循环写到一个SText中,然后,m_Edit.SetWindowText(SText);不知道这种方法是否是最好!

15,980

社区成员

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

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