2012-08-08 286 views
0

我想根據用戶輸入更改執行時間中標籤的標題(文本)。如果用戶按下按鈕,我的程序將執行一些內容並將輸出寫入標籤。但我對此有一個問題。更改標籤標題

首先,我的環境中沒有標籤。至少在工具箱中。我知道,從工具箱中添加並不是唯一的方法,但我有點害怕觸摸舊的源代碼並搞砸了。

我發現一個靜態文本元素,但我猜是因爲它的「靜態」元素,我無法在resource.h中看到它。所以,如果我使用像GetDlgItem(IDC_STATIC);這樣的函數,它不起作用。因爲我的resource.h中沒有IDC_STATIC

這是第二個。我也使用了SetDlgItemText(IDC_STATIC, "text");。但是,因爲我的resource.h不知道什麼IDC_STATIC是,我得到錯誤。

是否存在不在工具箱中的標籤類/元素?我想我的IDC_STATIC不在我的resource.h中,因爲它的靜態行爲。或者,有沒有其他方法可以更新標籤/靜態文本的文本?

感謝您的幫助。

回答

3

你想用一個靜態控制,但給它比其他IDC_STATIC一些標識符。然後,您可以使用該標識符使用GetDlgItemText,SetDlgItemText等。或者,您可以/可以使用EDIT控件設置爲只讀,這幾乎等同於靜態控件。


比許多人更加體會 - 例如,改變正常的編輯控件的背景顏色,你WM_CTLCOLOREDIT迴應。要更改靜態控件的只讀編輯控件的背景顏色,請回復WM_CTLCOLORSTATIC

+0

非常感謝您的快速響應。我有點困,所以在發佈問題後我發現了這些信息。不過,非常感謝。 – 2012-08-08 07:16:05

1

將您的靜態文本的ID更改爲IDC_STATIC以外的內容,並更改這些代碼以更新它。我希望我在5分鐘前嘗試過。

更改它的ID將更新您的resource.h並在其中添加您的靜態文本。

這可能幫助人們在我調試我猜:

TCHAR *pszBuffer = new TCHAR[255]; 
pszBuffer = TEXT("dkjhasja"); 
CWindow wndSys; 
wndSys.Attach(GetDlgItem(IDC_BLABLABLA)); 
wndSys.SetWindowText(pszBuffer); 
wndSys.Detach();