GDI+ / PNG 实现半透明窗口,正常情况下没有问题 将系统设置为16位色后UpdateLayeredWindow函数失败,GetLastError返回8(ERROR_NOT_ENOUGH_MEMORY)
问题出在你创建的Bitmap上,一般情况下用CreateCompatibleBitmap来创建,但是这时候创建的Bitmap跟DC走了,是16位色的,这样就会丢失了Alpha通道。所以应该这样: RECT rtWnd; hWnd = GetSafeHwnd(); if(hWnd == NULL) break; if(!::GetWindowRect(hWnd, &rtWnd)