小弟初学DX,请问假如我有一个背景色为RGB(0,255,0)的位图,想让它透明如何使用SetColorKey()函数?再则任一位图,取(0,0)为色键,如何做? 请给出详细解释,为什么这样做,照顾小弟初学,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HRESULT SetColorKey( DWORD dwFlags, LPDDCOLORKEY lpDDColorKey );dwFlags可以添DDCKEY_SRCBLT,在blt操作中代表源surface中的这种颜色不要拷贝到目地surface中(正是我们要的)。lpDDColorKey是一个预先添好的DDCOLORKEY结构的地址,这个结构由两个DWORD组成,代表一个颜色范围,起的作用是由dwFlag决定的。如果你希望透明的只是一种颜色,比如被景色,那么把这两个DWORD都设成那种颜色就行了。在产生了surface之后就可以调这个函数了,然后就可以flip或者bltfast什么的了。 [email protected]不过,如果已知背景像素为RGB(0,255,0),那么如何通过它产生色键的过程还是不懂啊。我那本书上说,要先将平面左上角一像素读出来,然后通过它来个什么运算(与、移位运算之类),然后再将这个DOWRD值赋给色键的两个成员变量,只是这个过程不懂,程序倒是运行成功了。 模态对话框什么时候不居中显示? 在线程函数中创建窗口,在WinMain中消息循环行不行? 关于C/S模式的打字测试 解析XML 和 HTML有什么区别吗? 求助调用别的可执行程序 raw_sock中的recvfrom问题 求助!!!vc++中如何使用cwgraph控件画直线。 求简单分布式的源代码,妹妹不胜感激,高分回报!! 子控件刷新的问题 请问谁有用CSOCKET做的基于SMTP的Email程序(源码),高分感谢! 100请教handle.handle table. 关于wm_mouseover消息的问题
DWORD dwFlags,
LPDDCOLORKEY lpDDColorKey
);
dwFlags可以添DDCKEY_SRCBLT,在blt操作中代表源surface中的这种颜色不要拷贝到目地surface中(正是我们要的)。
lpDDColorKey是一个预先添好的DDCOLORKEY结构的地址,这个结构由两个DWORD组成,代表一个颜色范围,起的作用是由dwFlag决定的。如果你希望透明的只是一种颜色,比如被景色,那么把这两个DWORD都设成那种颜色就行了。
在产生了surface之后就可以调这个函数了,然后就可以flip或者bltfast什么的了。
不过,如果已知背景像素为RGB(0,255,0),那么如何通过它产生色键的过程还是不懂啊。我那本书上说,要先将平面左上角一像素读出来,然后通过它来个什么运算(与、移位运算之类),然后再将这个DOWRD值赋给色键的两个成员变量,只是这个过程不懂,程序倒是运行成功了。