Sets the caption or text of a control owned by a window or dialog box.void SetDlgItemText(int nID,LPCTSTR lpszString );請問一下,SetDlgItemText是如何改變控件的內容的。我在VS2008里面的OnCreate函數調用這個函數:SetDlgItemTextW(IDC_INFO2, str);經過調試,str的值OK,就是沒有設置成功。另外,為什么我在構造函數里面調用這條函數的時候會出現很嚴重的后果呢---斷言失?。∪绻以O置一個變量來修改的話,就可以!一樓回答很靠譜!不過“呼叫UpdateData()函數進行更新”還是沒有用!我在書上看到一句話“對話框數據成員的初始化工作一般在其構造函數進行,而對話框和控件的初始化則在OnInitDialog()函數中完成”。因為我有兩種方法,如果為控件建立一個變量,例如m_strName,則在構造函數中設置它的值。如果要使用SetDlgItemTextW這條函數,則在OnInitDialog()函數中調用。
2 回答

函數式編程
TA貢獻1807條經驗 獲得超9個贊
SetDlgItemText()設置過后要呼叫UpdateData()函數進行更新,否則顯示不出來。至于在構造函數里使用這個東西呢,要看你那個對象是否已經完全構造出來了,一般是不放在構造函數里的,構造函數一般只用于成員的初始化或者其他啥的.
依照你的補充,這樣你可以在對話框的類中進行這項工作,貌似無法從其他的類中進行?如果要從其他類中進行的話就必須定義一個全局變量?

慕仙森
TA貢獻1827條經驗 獲得超8個贊
SetDlgItemText函數的功能:設置對話框中控件的文本和標題。
使用方法參考如下:
itoa(str33, str3, 10);
SetDlgItemText ( hwnd , IDC_EDIT3 , str3) ;
其中str33為int型的數字,str3為字符串指針。
第一句代碼作用:用itoa函數將int型的數字str33轉化為字符串,并且將字符串放到str3指針指向的區域。
str3為字符串指針,里面包含著文本內容。
第二句代碼作用就是將str3的內容顯示到ID為IDC_EDIT3的控件。
- 2 回答
- 0 關注
- 105 瀏覽
添加回答
舉報
0/150
提交
取消