用GDI双缓冲绘图,我发现如果内存DC创建的是兼容位图, 从内存DC拷贝到设备DC, AlphaBlend会失效;
尝试下将位图输出为DIB, 再将DIB选入内存DC, 依然无效这是为什么呢?再网上找了下, 发现不少人碰到这个问题, 但木有发觉解决方法MFC界面 AlphaBlend透明
尝试下将位图输出为DIB, 再将DIB选入内存DC, 依然无效这是为什么呢?再网上找了下, 发现不少人碰到这个问题, 但木有发觉解决方法MFC界面 AlphaBlend透明
解决方案 »
- windows程序是如何运行在内存中的
- 关于vc 6.0 定义了一个类型的实例变量,在使用时弹不出方法等等
- 把EXE文件作为资源文件???
- 选项卡控件第一页上的控件显示不出来!
- 上传问题~ multipart/form-data
- vnc
- 菜鸟请教主函数!!!
- Debug和Release的结果不同是怎么一回事.
- 高人请指点,我在CStic控件中,想将字体改较大号,并改变它的背景色和字体本身的颜色
- 为什么一切正常的工具栏到了别的机器上,背景成了红色了。
- fstream文件流读取数据文件报错
- 一个规则的MFC动态库(支持Windows Sockets),在调用程序中就不能使用CoInitialize?????
如果是AC_SRC_ALPHA 模式,源DC的draw surface必须是32bpp的,这时一般将包含alpha通道的32bpp位图以DIBSection的形式加载(LoadImage LR_CREATEDIBSECTION),将其选入MEMDC,DCDIBSectio保证MEMDC将是32bpp的,而不会因为当前display mode非32位造成在memdc中创建的DDB也不是32bit的,引起AlphaBlend执行返回错误
另外AC_SRC_ALPHA需要手动Premultiply源像素
嗯, 发觉问题了差不多是这样, 我没的函数中打算用AC_SRC_ALPHA模式, 但是设置了这个值