mfc中SetWindowTextW

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mfc中SetWindowTextW相关的知识,希望对你有一定的参考价值。

mfc中edit control控件的SetWindowTextW函数可以实现将该控件的值设置成什么什么。但每次调用都会自动擦除空间里原来的字。请问有没有方法可以实现每次调用都自动加在原先文字的后面,就像控制台程序的标准输出流一样。。。

可以的,先setsel,然后replacesel就可以追加了
m_ctlEdit.SetSel(-1);
m_ctlEdit.ReplaceSel(strEdit);
m_ctlEdit是EDIT控件的控制型变量
strEdit是要追加的内容。
参考技术A 是Set又不是Append,本来就是会擦除原来的,你自己下次调用SetWindowText之前先GetWindowText,拼装好了再SetWindowText不就行了。追问

想过这个办法,但略麻烦。而且都最后会越积累越多,,,到底有木有解决方案,

追答

SetSel(-1),不选,替换,呵呵

在共享DLL中使用MFC 和在静态库中使用MFC的区别

使用VS2008,在项目属性中有一项MFC的使用,有三种设置:    

1.使用标准Windows库   
2.在共享DLL中使用MFC    
3.在静态库中使用MFC    
       第一种顾名思义。
       第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。
       第三种是将DLL中的相关代码写进EXE文件中,文件较大,但是可以在没有相关DLL的机器上运行。    
       同时,如果程序本来是第二种方式,发给同事,在同事机器上运行时,可能会出现错误:   “无法启动程序……,由于应用程序配置不正确,未能启动此应用程序。”我觉得,在开发阶段的程序都选第3种比较好吧,不用管大小以及效率,等后期打包的时候用spy等其他工具都可以,来侦测DLL等就行了。(http://blog.csdn.net/xiexievv/article/details/6314874)
 

       "在共享DLL中使用MFC"指的是打包时一些MFC的DLL的内容没有被硬编码到在EXE文件中,所以EXE会文件较小,但是运行时要求运行的系统环境中要有相关的DLL文件.

     "在静态库中使用MFC"是将DLL对应的lib静态库中的相关代码硬编码到EXE文件中,文件较大,但是可以在没有已经被包含DLL的机器上运行,当然即使如此也并非所有的DLL都会将其硬编码到Exe中,因此仍然某些DLL是必须的.比如Redistributable Package中的某些DLL.

 

      静态库中编译出来的可执行文件拿到其它机器上也可以运行,共享DLL中编译出来的可执行文件在本机上可以执行,若拿到其它机器上就需要相应的动态库支持。

     另外,共享DLL下的工程大小会稍小一些,但是在另一台机器上运行时务必保证那一台机器上有动态库支持。

 

原文:http://blog.csdn.net/zhongguoren666/article/details/8187207

http://blog.csdn.net/chence19871/article/details/38339457

以上是关于mfc中SetWindowTextW的主要内容,如果未能解决你的问题,请参考以下文章

mfc 多文档中怎样动态添加菜单项?

从mfc应用程序中找出winman函数

mfc中CClientDC(this)的this怎么获得?

mfc 中如何打开 关闭一个exe文件

mfc 中如何打开 关闭一个exe文件

在共享DLL中使用MFC 和在静态库中使用MFC的区别