win32 edit控件尾部追加内容

win32 edit控件尾部追加内容

转载 majalis_C 最后发布于2019-03-26 15:35:56 阅读数 259 收藏

展开

 

有时候我们可能想在win32程序上实时打印我们想要的一些信息,不是以覆盖的形式而是以追加的形式。

    以前我常常采用比较笨的方式,首先调用GetDlgItemText获取原先字符串,保存在一个字符数组里面,然后将字符数组追加一个字符串,再调用SetDlgItemText函数达到自己的目的了,这种方式如果要打印的文字短还比较好处理,但是当文字量达到一定程度时,我们势必就要分配一个特别大的存储区域来存储原先的字符串,而且会反复malloc和free造成内存的碎片,当然这种方式效率也特别低下。

    最近因为要打印比较大的数据量,所以上网查找了下如何在Edit控件上append内容,实现如下:

   

 
  1.  
  2. void AppendEdit( HWND hWnd, const char * strOutputString,... )

  3. {

  4. #ifdef SR_DEBUG

  5. HWND hEdit = GetDlgItem(hWnd, IDC_EDIT_SHOW);

  6. char strBuffer[4096]={0};

  7. va_list vlArgs;

  8. va_start(vlArgs,strOutputString);

  9. _vsnprintf_s(strBuffer,sizeof(strBuffer)-1,strOutputString,vlArgs);

  10. va_end(vlArgs);

  11.  
  12. strcat_s(strBuffer, "\r\n");

  13.  
  14. /* 以下两条语句为在edit中追加字符串 */

  15. SendMessageA(hEdit, EM_SETSEL, -2, -1);

  16. SendMessageA(hEdit, EM_REPLACESEL, true, (long)strBuffer );

  17.  
  18. /* 设置滚轮到末尾,这样就可以看到最新信息 */

  19. SendMessageA( hEdit, WM_VSCROLL, SB_BOTTOM,0);

  20. #endif

  21.  

--------------------- 
作者:Jaylon88 
来源:CSDN 
原文:https://blog.csdn.net/dailongjian2008/article/details/50548303 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_20312079

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值