2012-08-08 137 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();