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

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

这些按钮看起来不错,但是我不知道如何使按钮周围的背景透明。请参见示例图片: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的资源编辑器中进行设置。

10-07 19:07
查看更多