编辑: 如果有人以前在 win32 中尝试过这个,我使用 DrawThemeBackground() 的方向是否正确?

我最近使用 ComCtl32.dll 版本 6 的清单启用了视觉样式。Win32 中的视觉样式示例: 视觉风格

这些按钮看起来很棒,但我不知道如何使按钮周围的背景透明。请参阅示例图片: http://www.freeimagehosting.net/image.php?2bdeff33ba.jpg

我的主窗口背景颜色设置为深灰色:

a.hbrBackground = GetStockObject(DKGRAY_BRUSH);

公共控件初始化为:

INITCOMMONCONTROLSEX stylesStruct;
stylesStruct.dwSize = sizeof(stylesStruct);
stylesStruct.dwICC = ICC_STANDARD_CLASSES;
InitCommonControlsEx(&stylesStruct);

我使用以下命令创建按钮窗口:

j = CreateWindow(L"BUTTON", L"hello",
    WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, 100, 100,
    100, 100, h, 0, hInst, 0);

按钮在白色背景上看起来很好,但边框在其他任何东西上都变得可见。是否可以使按钮周围的边框透明?

有帮助吗?

解决方案

你有没有尝试过 WS_EX_TRANSPARENT?

我认为您可以在 Visual Studio 的资源编辑器中设置它(如果您正在使用它)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top