gpt4 book ai didi

c++ - 静态控件设置文字颜色

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:21 29 4
gpt4 key购买 nike

我有一个静态控件:

HWND hLabelControl=CreateWindowEx(WS_EX_CLIENTEDGE,"STATIC","",
WS_TABSTOP|WS_VISIBLE|WS_CHILD|SS_CENTER,0,0,24,24,
hwnd,(HMENU)hS1,GetModuleHandle(NULL),NULL);

例如,我希望在按下按钮时,静态标签中文本的颜色变为红色。

我该怎么做?

我知道有一个

SetTextColor(
_In_ HDC hdc,
_In_ COLORREF crColor
);

功能,但我不知道如何获取静态控件的 HDC。

提前致谢。

编辑:

这行不通:

        HDC hDC=GetDC(hLabelControl);
SetTextColor(hDC,RGB(255,0,0));

最佳答案

静态控件向它们的父控件发送一个 WM_CTLCOLORSTATIC在他们画自己之前的消息。您可以通过处理此消息来更改 DC。

case WM_CTLCOLORSTATIC:
if (the_button_was_clicked) {
HDC hdc = reinterpret_cast<HDC>(wParam);
SetTextColor(hdc, COLORREF(0xFF, 0x00, 0x00));
}
return ::GetSysColorBrush(COLOR_WINDOW); // example color, adjust for your circumstance

所以诀窍是让静态控件在单击按钮时重新绘制自身。你可以用几种不同的方式来做到这一点,但最简单的可能是用 InvalidateRect 使窗口无效。 .

关于c++ - 静态控件设置文字颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15957260/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com