Прозрачность фона кнопки с использованием Win32 и визуальных стилей

StackOverflow https://stackoverflow.com/questions/850581

Вопрос

Редактировать: Если кто-нибудь пробовал это раньше в 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