gpt4 book ai didi

c++ - 在静态控件中,为什么文本周围有一个紧密的矩形?

转载 作者:行者123 更新时间:2023-12-02 04:00:13 24 4
gpt4 key购买 nike

我使用静态控件在窗口中写入。通常,我将背景颜色保持为白色,并在 WM_CTLCOLORSTATIC 消息中设置静态控件的颜色就足够了(用黑色书写,背景白色)。现在,为了提供更现代的视觉效果,我尝试对窗口和静态控件使用 DKGRAY 颜色,并用白色书写:

case WM_CTLCOLORSTATIC:
HDC hdcStatic = (HDC)wParam;
SetTextColor(hdcStatic, RGB(255, 255, 255));
SetBkColor(hdcStatic, DKGRAY_BRUSH);
return (INT_PTR)GetStockObject(DKGRAY_BRUSH);

它几乎可以正常工作:- 文字颜色为白色:良好- 静态控件的背景是深灰色:好- 但是文本写在一个紧密的黑色矩形内:围绕文本的这个紧密的矩形是什么???它从何而来 ?我怎样才能改变它的颜色?

enter image description here

供引用,下面是在主窗口的 WM_CREATE 消息中创建静态控件的示例:

    hsStatic1 = CreateWindowEx(0, L"STATIC", L"Fichier :", WS_CHILD | WS_VISIBLE, 15, 5, 60, 20, hWnd, (HMENU)ID_STATIC1, (HINSTANCE)GetWindowLongPtr(hWnd, GWLP_HINSTANCE), nullptr);

谢谢。

最佳答案

DKGRAY_BRUSHGetStockObject 的一个神奇值,它不是可以传递给 SetBkColor() 的 RGB 颜色。

您需要识别 DKGRAY_BRUSH 的 RGB 值并在调用 SetBkColor() 时使用该值,或者选择要使用的特定 RGB 值并创建您自己的值使用 CreateSolidBrush 进行画笔。

关于c++ - 在静态控件中,为什么文本周围有一个紧密的矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59651970/

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