我正在尝试在我的应用程序中创建透明度。例如,我的应用程序的窗口是方形的,我想通过隐藏窗口的一部分来使其变为圆形。
我的代码看起来像这样:
HDC hdcMask = nullptr;
HBITMAP hBMP = (HBITMAP)LoadImageW(nullptr, L"C:\\mask.bmp", IMAGE_BITMAP, 150, 160, LR_LOADFROMFILE);
SelectObject(hdcMask, hBMP);
HWND hWnd = GetActiveWindow();
HDC hdcWindow = GetDC(hWnd);
TransparentBlt(hdcWindow, 0, 0, 150, 160, hdcWindow, 0, 0, 150, 160, RGB(0,0,0));
其中 mask.bmp 是一个位图,其中白色是我想要透明的,黑色是我想要可见的。
应用此代码后,什么也没有发生。我究竟做错了什么 ?是否有另一种方法来获得所需的结果?
注意:我需要此代码才能在 Windows XP 操作系统或更高版本上工作。