gpt4 book ai didi

c++ - 静态文本颜色

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:11:58 26 4
gpt4 key购买 nike

我已经编写了以下代码,它将颜色应用于一个窗口中的所有静态文本,但是我想在一个窗口中应用两种不同的颜色,例如ID:1234,其中ID是另一种颜色,1234 将在一个窗口中显示不同的颜色。我怎样才能做到这一点?这是我所做的:

case WM_CTLCOLORSTATIC:

SetBkColor( hdc, COLORREF( :: GetSysColor( COLOR_3DFACE) ) );
//sets bckcolor of static text same as window color

if ( ( HWND ) lParam == GetDlgItem( hWnd, IDC_PID) )
{
SetTextColor( ( HDC ) wParam, RGB( 250, 50, 200));
return ( BOOL ) CreateSolidBrush ( GetSysColor( COLOR_3DFACE) );
}

break;

最佳答案

我不确定我是否理解您的问题。您的代码看起来还不错。值得注意的一点是,您有责任清理您分配的资源。使用上面的代码,您将泄漏通过调用 CreateSolidBrush 创建的 HBRUSH 对象。由于您不需要自定义画笔,因此您应该使用 GetSysColorBrush .

根据个人喜好,我会使用 GetDlgCtrlID 过滤控件 ID,而不是它的窗口句柄。 .合并您的代码应如下所示的更改:

case WM_CTLCOLORSTATIC:
switch ( GetDlgCtrlID( (HWND)lParam ) )
{
case IDC_PID:
//sets bckcolor of static text same as window color
SetBkColor( (HDC)wParam, COLORREF( GetSysColor( COLOR_3DFACE ) ) );
SetTextColor( (HDC)wParam, RGB( 250, 50, 200) );
return (INT_PTR)GetSysColorBrush( COLOR_3DFACE );

default:
// Message wasn't handled -> pass it on to the default handler
return 0;
}

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

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