如何清除标签标题?
How to clear label caption?
我在 OnCtrlcolor
事件中使用标签:
我已经把label的背景色设置成和表格一样了,
if (iD == IDCmylabel)
{
pDC->SetTextColor(blue);
COLORREF normal = RGB(245, 245, 245);
pDC->SetBkColor(normal);
return (HBRUSH)GetStockObject(NULL_BRUSH);
}
所以我想使用 toogle:
SetWindowTextW("abc..."); // will show the color as expected.
SetWindowTextW(nullptr); // will remove the text color.
但是这对我不起作用(标题没有重绘,因为它仍然存在)。
我该如何解决这个问题?
有人需要擦除旧文本下的背景。
您正在返回 NULL_BRUSH
,因此“擦除背景”没有任何作用。
Return颜色RGB(245, 245, 245)
的实心画笔。您可能还需要在设置新文本后为 window 调用 Invalidate
。
NULL_BRUSH
是一个画笔,它指示系统将使用该画笔的任何绘画操作变为空操作。使用它实际上并不能使控件透明。它只是看起来是透明的,直到(它的一部分)被涂上。
如果您想要一个具有特定背景颜色的控件,无论显示的文本大小如何,您都必须提供纯色画笔。
最简单的方法是 return 一个 DC_BRUSH
, with an accompanying call to SetDCBrushColor
来请求颜色,即
if (iD == IDCmylabel) {
pDC->SetTextColor(blue);
COLORREF normal = RGB(245, 245, 245);
// Still required so that the text background matches that of the rest
pDC->SetBkColor(normal);
// Request brush color for the control background
pDC->SetDCBrushColor(normal);
// Note: Stock objects do not need to be freed by client code
return (HBRUSH)GetStockObject(DC_BRUSH);
}
有了它,您可以使用任意参数调用 SetWindowText
并获得您要查找的结果。
我在 OnCtrlcolor
事件中使用标签:
我已经把label的背景色设置成和表格一样了,
if (iD == IDCmylabel)
{
pDC->SetTextColor(blue);
COLORREF normal = RGB(245, 245, 245);
pDC->SetBkColor(normal);
return (HBRUSH)GetStockObject(NULL_BRUSH);
}
所以我想使用 toogle:
SetWindowTextW("abc..."); // will show the color as expected.
SetWindowTextW(nullptr); // will remove the text color.
但是这对我不起作用(标题没有重绘,因为它仍然存在)。
我该如何解决这个问题?
有人需要擦除旧文本下的背景。
您正在返回 NULL_BRUSH
,因此“擦除背景”没有任何作用。
Return颜色RGB(245, 245, 245)
的实心画笔。您可能还需要在设置新文本后为 window 调用 Invalidate
。
NULL_BRUSH
是一个画笔,它指示系统将使用该画笔的任何绘画操作变为空操作。使用它实际上并不能使控件透明。它只是看起来是透明的,直到(它的一部分)被涂上。
如果您想要一个具有特定背景颜色的控件,无论显示的文本大小如何,您都必须提供纯色画笔。
最简单的方法是 return 一个 DC_BRUSH
, with an accompanying call to SetDCBrushColor
来请求颜色,即
if (iD == IDCmylabel) {
pDC->SetTextColor(blue);
COLORREF normal = RGB(245, 245, 245);
// Still required so that the text background matches that of the rest
pDC->SetBkColor(normal);
// Request brush color for the control background
pDC->SetDCBrushColor(normal);
// Note: Stock objects do not need to be freed by client code
return (HBRUSH)GetStockObject(DC_BRUSH);
}
有了它,您可以使用任意参数调用 SetWindowText
并获得您要查找的结果。