与颜色的问题

我编写的是一个蛇游戏,我有一个苹果图像在游戏中使用,所以我创build了一个DC,然后将苹果加载到这个DC,当游戏运行时,它应该将苹果复制到缓冲区,然后缓冲到屏幕,但苹果在屏幕上结束黑白,any1有什么想法? 这里是我的一些代码,可能有帮助…

“苹果加载程序”

invoke GetModuleHandle,0 invoke LoadBitmap,eax,10 push eax invoke CreateCompatibleDC,0 pop ecx mov [mapple],eax invoke SelectObject,[mapple],ecx 

“缓冲区创build程序”

 invoke CreateCompatibleDC,0 mov [mdc],eax invoke CreateCompatibleBitmap,[mdc],800,600 mov [mbmp],eax invoke SelectObject,[mdc],[mbmp] invoke SetBkMode,[mdc],TRANSPARENT invoke SetTextColor,[mdc],0FFFFFFh 

调用BitBlt函数

 invoke BitBlt,[mdc],[applex],[appley],20,20,[mapple],0,0,SRCCOPY invoke GetDC,0 invoke BitBlt,eax,0,0,800,600,[mdc],0,0,SRCCOPY 

从其他地方的想法,你需要传递CreateCompatibleBitmap你的目标实际DC(如GetDC(NULL) ),而不是刚刚创建的mdc 。 因为在CreateCompatibleDC之后,当前(=初始,默认)位图是CreateCompatibleBitmap(mdc...)匹配的单色像素1x1x1b。