更改标签的标题

时间:2012-08-08 07:00:15

标签: c++ c label atl

我想根据用户输入更改执行时间中标签的标题(文本)。如果用户按下按钮,我的程序将执行一些操作并将输出写入标签。但我有一个问题。

首先,我的环境中没有标签。至少在工具箱中。我知道,从工具箱中添加并不是唯一的方法,但我有点害怕触摸旧的源代码并搞砸了。

我找到了一个静态文本元素,但我想因为它是一个“静态”元素,我在resource.h中看不到它。所以,如果我使用像GetDlgItem(IDC_STATIC);这样的函数,它就不起作用了。因为我的resource.h中没有IDC_STATIC

这是第二个。

而且,我也使用了SetDlgItemText(IDC_STATIC, "text");。但是,由于我的resource.h不知道IDC_STATIC是什么,我得到错误。

是否有不在工具箱中的标签类/元素?我想我的IDC_STATIC不在我的resource.h中,因为它的静态行为。或者,有没有其他方法来更新标签/静态文本的文本?

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

您想使用静态控件,但为IDC_STATIC以外的其他标识符。然后,您就可以将GetDlgItemTextSetDlgItemText等与该标识符一起使用。或者,您可以/可以将EDIT控件集用于只读,这几乎等同于静态控件 1


1 甚至比许多人意识到 - 例如,要更改普通编辑控件的背景颜色,您需要回复WM_CTLCOLOREDIT。要更改静态控件只读编辑控件的背景颜色,请回复WM_CTLCOLORSTATIC

答案 1 :(得分: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();