VC2005 渐变色背景

lxlx714 2008-04-10 12:50:29
我用的是 VC2005 ,老师留的题目是用Windows Application Form做一个简单的扑克游戏,我想把背景做成同VISTA一样的那由浅绿到深绿种渐变色
我尽量压缩了背景图片到30多KB,然后调用了double buffer,但由于在FORM里有动画,所以加上背景之后,动画移动就非常卡,请问有什么方法解决吗?
如果直接在Form1_Paint里面画可以吗?如果画希望能给的代码,谢谢。
...全文
374 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2008-04-11
  • 打赏
  • 举报
回复
You can use XNA
Supper_Jerry 2008-04-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 lxlx714 的回复:]
引用 12 楼 Supper_Jerry 的回复:
一个线程渲染背景,使用几个rectangle 只需要用不同颜色画刷draw rectangle就可以了
一个线程移动。
上面应该可行。


能给几行简单的代码吗?
还有不是很明白什么是一个线程控制渲染,一个线程控制移动?
谢谢你了
[/Quote]
不是opengl,你参考下多线程的例子。主线程移动。另外一个线程,画背景,就是用不同颜色的画刷画矩形。
Supper_Jerry 2008-04-10
  • 打赏
  • 举报
回复
一个线程渲染背景,使用几个rectangle 只需要用不同颜色画刷draw rectangle就可以了
一个线程移动。
上面应该可行。
Supper_Jerry 2008-04-10
  • 打赏
  • 举报
回复
一个线程渲染背景,使用几个rectangle 只需要用不同颜色画刷draw rectangle就可以了
一个线程移动。
上面应该可行。
redleaves 2008-04-10
  • 打赏
  • 举报
回复
不要用那些破控件,自己用GDIPLUS画.速度通常不会有什么问题,只是窗口比较大的时候GDI也很慢...只能用OpenGL或DX了...
lxlx714 2008-04-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dizuo 的回复:]
渐变,是不是可以通过循环生成一个颜色数组,里面存放颜色值,
你的doube buffer是怎么实现的?
[/Quote]

如果是通过数组这样来画背景的话,速度会比用一张图片快吗?
能否给个例子,如何实现呢?谢谢

DOUBLE BUFFER就是在
InitializeComponent();
this->SetStyle(static_cast<ControlStyles>(
ControlStyles::AllPaintingInWmPaint |
ControlStyles::DoubleBuffer |
ControlStyles::UserPaint), true);
this->UpdateStyles();
ryfdizuo 2008-04-10
  • 打赏
  • 举报
回复
lz是用c#做的吧,c#就不懂了
ryfdizuo 2008-04-10
  • 打赏
  • 举报
回复
渐变,是不是可以通过循环生成一个颜色数组,里面存放颜色值,
你的doube buffer是怎么实现的?
lxlx714 2008-04-10
  • 打赏
  • 举报
回复
我不懂MFC啊,有没有简单的办法?

我只是想很简单的一个背景,就是中间是浅色绿,周围是深色绿。最简单就是用图片做背景吧,但是我FORM里面有移动PICTUREBOX的动画,所以PICTUREBOX一移动,动画就很卡(如果没有背景就不卡)。有什么办法吗?
谢谢了
Supper_Jerry 2008-04-10
  • 打赏
  • 举报
回复
你不是想把图片加载进来做背景吧?
还是背景是浅绿到深绿?
星羽 2008-04-10
  • 打赏
  • 举报
回复
不懂 用Windows Application Form
lxlx714 2008-04-10
  • 打赏
  • 举报
回复
需要解决啊~自己顶下
liyuzhu_1984 2008-04-10
  • 打赏
  • 举报
回复
长见识了
Supper_Jerry 2008-04-10
  • 打赏
  • 举报
回复
1.建立两个线程来解决你的问题。
一个移动
一个渲染背景
2.如果实时画的话也可以。
因为你的背景比较简单,相邻象素稍做改变即可。
近似用多个rectangle来做背景,rectangle的背景色
从浅绿到深绿。不知道能不能做到实时,
你可以尝试一下。
lxlx714 2008-04-10
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 Supper_Jerry 的回复:]
一个线程渲染背景,使用几个rectangle 只需要用不同颜色画刷draw rectangle就可以了
一个线程移动。
上面应该可行。
[/Quote]
你说的线程是OPENGL里面的吗? 我不会啊~呵呵
lxlx714 2008-04-10
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 Supper_Jerry 的回复:]
一个线程渲染背景,使用几个rectangle 只需要用不同颜色画刷draw rectangle就可以了
一个线程移动。
上面应该可行。
[/Quote]

能给几行简单的代码吗?
还有不是很明白什么是一个线程控制渲染,一个线程控制移动?
谢谢你了
HelloDan 2008-04-10
  • 打赏
  • 举报
回复
MFC里面好像是有渐变的动画的

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧