Сделать кнопку цветопрозрачной в Windows

Я хочу создать кнопки с пользовательскими формами, поэтому я решил сделать это с помощью многослойной Windows. Я создаю окно для кнопки, устанавливаю для нее растровое изображение, делаю его слоистым, а затем пытаюсь сделать белый цвет полностью прозрачным. Как только я пишу на masm, код выглядит так:

mov button, rv(CreateWindowEx, WS_EX_APPWINDOW or WS_EX_LAYERED, 
    chr$("Button"), NULL, 
    WS_CHILD or BS_BITMAP or WS_VISIBLE, 
    300, 10, 81, 98, 
    hWin, 200, hInstance, NULL)
mov bmHandle, rv(LoadImage, NULL, bitmapPath, 
    IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE or LR_DEFAULTSIZE)
invoke SendMessage, button, BM_SETIMAGE, IMAGE_BITMAP, eax
invoke SetLayeredWindowAttributes, hWnd, 00000000h, 0, LWA_COLORKEY

Но белый цвет на растровом изображении не становится прозрачным, хотя он работал с пользовательской формой окна для меня.

Как я могу сделать эту работу?

0 ответов

Другие вопросы по тегам