MFC edit控件实现控制台式滚动输出

EDIT属性里将“Multiline”改为True

代码实现:

void CDEMODlg::writeInfo(CString& info)
{
    CString info_ = L"[main] ";
    info_ = info_ + info + L"\r\n";

    CString strOutput;
    m_static.GetWindowTextW(strOutput);
    strOutput += info_;

    m_static.SetRedraw(FALSE);
    m_static.SetWindowTextW(strOutput);

    int lines = m_static.GetLineCount();
    int counts = strOutput.GetLength();
    m_static.LineScroll(lines, 0);
    m_static.SetSel(counts, counts);

    m_static.SetRedraw(TRUE);
}

1)字符串需要累加,也就是说实际上每次输出都是完全更新
2)每行字符串里添加‘\r\n’标记换行
3)SetRedraw先强制关闭是为了避免滚动条先跳到第一行再回到最后一行
4)LineScroll设置滚动条到最后一行
5)SetSel设置光标到最后一行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值