更改标签的标题

Change Caption of Label

本文关键字:标题 标签      更新时间:2023-10-16

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

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

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

这是第二个。

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

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

感谢您的帮助。

你想要使用静态控件,但要给它一些标识符,而不是IDC_STATIC。然后,您将能够使用该标识符GetDlgItemTextSetDlgItemText等。或者,您可以/可以使用设置为只读的 EDIT 控件,这几乎等同于静态控件1


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

将静态文本的 ID 更改为 IDC_STATIC 以外的其他内容,并更改这些代码以更新它。我希望我在 5 分钟前尝试过这个。

更改它的 ID 会更新您的资源.h 并在其中添加静态文本。

我想这可能会帮助我之后的人进行调试:

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