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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM