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/