MFC动态更新静态文本内容(转)

MFC为每个静态文本都设置一个默认ID:IDC_STATIC,要想更新静态文本内容就要设置一个新的ID,例如改为:IDC_STATIC1

好了现在可以

方法一:

SetDlgItemText( IDC_STATIC1, "hello");

方法二:

GetDlgItem(IDC_STATIC1)-> SetWindowText( "hello");

说明一下,GetDlgItem(IDC_STATIC1)返回的是CWnd对象的指针。

如果已经新建了变量,直接用那个变量就行:

假设变量名为m_Static1,那么m_Static1.SetWindowText("hello")。即可

方法三:

比较实用的一种,因为用前面两种方法,动态库都是被动的,即结果提示信息只能是由对话框主动去获取。

那么如果要实现动态库主动发送消息给对话框并改变静态文本的内容呢?

可以使用SendMessage()来实现。

在动态库中有这样的一句即可----> ::SendMessage(hWnd, WM_SETTEXT, 0, (LPARAM)"shit");

说明:hWnd的类型是HWnd,指的是窗口句柄。于是乎,就需要先获得静态文本的句柄,那么怎么获得呢?如下:

HWND hWnd = GetDlgItem(IDC_STATIC1)->m_hWnd;

补充:上述代码可以在Dlg的DoDataExchange中实现,也可以在静态文本框的响应函数中实现...至于有什么区别我也没去琢磨..

http://blog.sina.com.cn/s/blog_870045320101j85j.html

参考:http://bbs.csdn.net/topics/390280066

     http://www.itnose.net/detail/6013661.html

     http://blog.csdn.net/abcjennifer/article/details/7478861

     http://bbs.csdn.net/topics/210061397

     http://riveken.blog.163.com/blog/static/1448900972012101621427568/

原文地址:https://www.cnblogs.com/xihong2014/p/13061146.html