我已经这么做了一段时间,但我正在尝试将自定义按钮图形添加到一个带有透明区域的Windows按钮。我尝试了各种方案,但似乎无法显示透明区域。这是我的代码:
hbmpUpDisabled = LoadImage(instance,MAKEINTRESOURCE(IDB_UPARROWDISABLED), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE | LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS );
SendMessage(GetDlgItem(hWndDlg, IDC_MOVEUP),BM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM)hbmpUpDisabled);
有没有人注意到这里有任何问题?如果我的位图是1位位图,它可以工作。我无法使32位位图工作,我不知道如何设置24位或8位位图....我尝试了自定义255,0,255色(IIRC是默认透明的价值),但到目前为止还没有快乐....
答案 0 :(得分:2)
LR_LOADMAP3DCOLORS应将灰色 - 在源图像中 - 映射到当前按钮面部颜色。按钮不使用AlphaBlt或TransparentBlt,因此没有办法实际(缺少自定义绘制)将带有透明或alpha'd区域的位图设置到按钮上并期望它能够工作。您只需在其背景区域中使用正确的按钮颜色预先准备位图。