我想根据用户输入更改执行时间中标签的标题(文本)。如果用户按下按钮,我的程序将执行一些操作并将输出写入标签。但我有一个问题。
首先,我的环境中没有标签。至少在工具箱中。我知道,从工具箱中添加并不是唯一的方法,但我有点害怕触摸旧的源代码并搞砸了。
我找到了一个静态文本元素,但我想因为它是一个“静态”元素,我在resource.h中看不到它。所以,如果我使用像GetDlgItem(IDC_STATIC);
这样的函数,它就不起作用了。因为我的resource.h中没有IDC_STATIC
。
这是第二个。
而且,我也使用了SetDlgItemText(IDC_STATIC, "text");
。但是,由于我的resource.h不知道IDC_STATIC
是什么,我得到错误。
是否有不在工具箱中的标签类/元素?我想我的IDC_STATIC
不在我的resource.h中,因为它的静态行为。或者,有没有其他方法来更新标签/静态文本的文本?
感谢您的帮助。
答案 0 :(得分:3)
您想使用静态控件,但为IDC_STATIC以外的其他标识符。然后,您就可以将GetDlgItemText
,SetDlgItemText
等与该标识符一起使用。或者,您可以/可以将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();