小技巧:如何令Edit Control滚动到最新的输出行

本文介绍了如何在MFC应用中使Edit Control自动滚动到最新输出信息,模仿VS输出窗口的功能。通过设置Multiline、Read Only和Vertical Scroll属性,结合EM_LINESCROLL和EM_GETLINECOUNT消息,实现滚动条的自动调整。同时,文章提供了两个版本的代码示例,一个基于WinAPI,另一个基于MFC,确保Edit Control光标定位在新信息的下一行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     最近在做一个测试程序时,需要将程序的一些信息输出到Edit Control之中,以便于观察被测试程序的运行状态。在输出信息过程中发现,Edit Control默认是不会自动滚动,并将最新的信息显示到Edit Control中。

     由于无法看到最新的显示信息,造成了我在第一时间没有办法看到程序的运行状态,所以我决定仿造VS的输出窗口,在输出信息时让滚动条自动滚动,以便我能够在第一时间看到程序的运行状态。

     首先,为了使Edit Control能够接收多行文本,你必须使用代码或,者使用VS的界面设计器将Edit Control的Multline属性设置为true,为了使Edit Control更接近于VS的输出窗口,你还可以将Read Only以及Vertical Scroll属性设置为true。

     下面就是实现自动滚动功能了,于是我打开MSDN,发现了EM_LINESCROLL消息能够让我们将Edit Control水平滚动多少字符或者垂直滚动多少行。当我兴奋的觉得问题解决了的时候,发现我还需要知道Edit Control中有多少行信息,才能让Edit Control滚动到新信息的出现位置。再次查询MSDN,发现EM_GETLINECOUNT可以获取到Edit Control中所包含字符的行数。让Edit Control滚动的具体的代码如下所示:

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值