问题描述
- GDI+双缓冲绘制png透明问题
- 我用了gdi+的graphics来绘制png
HDC hdc = GetDC(hWnd);//获取窗口的绘图hdcHDC hMdc=CreateCompatibleDC(hdc);//创建内存dcHBITMAP hMbitmap=CreateCompatibleBitmap(hdcwnd_widthwnd_height);//创建内存绘图图片SelectObject(hMdchMbitmap);//关联dc和图片Graphics graphics(hMdc);//创建graphics绘图对象FillRect(hMdc&clientRectwhitBru);//内存图片填充白色graphics.DrawImage(png.pImage png.point.xpng.point.ypwph);//在该位置绘制图片BitBlt(hdc00wnd_widthwnd_heighthMdc00SRCCOPY)
我定义了一个结构体,在point的位置绘制宽为pw,高为ph的png图片,可是png图片有的部分是半透明,背景是白色的,这样把内存里的图片拷到窗口的时候本该半透明的部分会有白色的背景,该怎样解决这个问题?求大神支招!我想要的是这中效果
我就是想要把白色的背景也能是按alpha值透明,那些心都是会动的,程序是全屏,并且是topmost的,求解决办法!
时间: 2024-11-05 12:24:40