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

Изменить: если кто-то пробовал это в win32 раньше, я иду в правильном направлении, используя DrawThemeBackground ()?

Недавно я включил визуальные стили, используя манифест для версии 6 ComCtl32.dll. Пример визуальных стилей в 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);

Кнопки хорошо смотрятся на белом фоне, но граница становится видимой поверх всего остального. Можно ли сделать прозрачной рамку вокруг кнопок?


person tyler    schedule 11.05.2009    source источник
comment
Похоже, вы все еще не получили здесь ответ, который искали, хотя вы его приняли. Я дал ответ на аналогичный вопрос, который был задан подробнее в последнее время; посмотрим, если это не то, что вы ищете.   -  person Cody Gray    schedule 30.03.2011


Ответы (1)


Вы пробовали WS_EX_TRANSPARENT?

Я думаю, вы можете установить его в редакторе ресурсов в Visual Studio, если вы его используете.

person Peter    schedule 12.05.2009
comment
Спасибо, это действительно помогает (бордюр тоньше). Но вокруг кнопки все еще есть тонкая черная рамка. Вы знаете, есть ли способ заполнить это цветом фона? - person tyler; 12.05.2009