使用 Win32 和视觉样式的按钮背景透明度
-
21-08-2019 - |
题
编辑: 如果有人以前在 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 的资源编辑器中设置它(如果您正在使用它)。
不隶属于 StackOverflow