bf.BlendOp=AC_SRC_OVER;
bf.AlphaFormat=0;
bf.BlendFlags=0;
bf.SourceConstantAlpha=200;
HDC MemDC;
dir="five_mask.bmp";
if(loadbmp(dir)==FALSE)
MessageBox("Sorry!");
SelectObject(MemDC,bit);
AlphaBlend(dc.m_hDC,0,0,xx,yy,MemDC,0,0,xx,yy,bf);
DeleteDC(MemDC);
SetTimer(1,20,NULL);
OnPaint中vc6.0
图显示出来了`但是闪的厉害`这是最上一层`背景和人物都不闪`双缓冲也实现了呀
高手快帮我改一下我试试
10 个解决方案
#1
SetTimer(1,20,NULL);什么意思?
#2
因为你的定时器频率太低了..
#3
你的计时器上做了什么?
#4
定时器做的事与这些无关
主要是让人物移动与处理人物走路`
这是人物下的蔗挡
双缓冲不是不管多快都不会闪的吗
我上面还有一张背景图`全屏的一点不闪`就是这个后加的闪
主要是让人物移动与处理人物走路`
这是人物下的蔗挡
双缓冲不是不管多快都不会闪的吗
我上面还有一张背景图`全屏的一点不闪`就是这个后加的闪
#5
双缓冲不是不管多快都不会闪的吗
没这么nx吧。
没这么nx吧。
#6
代码一句句删除,看大概哪里出了问题。
#7
就第一层不闪`原来人物也闪`跟频率没有关系`我设慢了就是跳的慢了`但人也走的慢了
#8
DLG的话,在classwizzard->class info 里把message filter改为WINDOW
然后添加WM_EraseBkgnd,return 1试试看
然后添加WM_EraseBkgnd,return 1试试看
#9
需要处理WM_EraseBkgnd消息,返回TRUE
#10
像这样闪的,最好整个背景都自己绘制,而且像9楼说的,WM_EraseBkgnd消息,返回TRUE
#1
SetTimer(1,20,NULL);什么意思?
#2
因为你的定时器频率太低了..
#3
你的计时器上做了什么?
#4
定时器做的事与这些无关
主要是让人物移动与处理人物走路`
这是人物下的蔗挡
双缓冲不是不管多快都不会闪的吗
我上面还有一张背景图`全屏的一点不闪`就是这个后加的闪
主要是让人物移动与处理人物走路`
这是人物下的蔗挡
双缓冲不是不管多快都不会闪的吗
我上面还有一张背景图`全屏的一点不闪`就是这个后加的闪
#5
双缓冲不是不管多快都不会闪的吗
没这么nx吧。
没这么nx吧。
#6
代码一句句删除,看大概哪里出了问题。
#7
就第一层不闪`原来人物也闪`跟频率没有关系`我设慢了就是跳的慢了`但人也走的慢了
#8
DLG的话,在classwizzard->class info 里把message filter改为WINDOW
然后添加WM_EraseBkgnd,return 1试试看
然后添加WM_EraseBkgnd,return 1试试看
#9
需要处理WM_EraseBkgnd消息,返回TRUE
#10
像这样闪的,最好整个背景都自己绘制,而且像9楼说的,WM_EraseBkgnd消息,返回TRUE