在Windows中使按钮颜色透明

时间:2017-12-24 18:28:12

标签: winapi button layered-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 个答案:

没有答案