如何利用vc模拟一个物体的移动

yueyucanyang 2008-06-09 03:07:09
请问,如何利用vc模拟一个物体的移动。或者是模拟发送数据的过程。物体可以用一个图片代替!
...全文
169 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
yueyucanyang 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 jolong 的回复:]
C/C++ code
//继承的头文件中PicStatic.h
class PicStatic :: Public Static
{
Public :
CBitMap m_Pic;
Public :
BOOL LoadPic(CBitMap Pic);
void Draw();
}


//继承的实现 PicStatic.cpp

BOOL PicStatic::LoadPic(CBitMap Pic)
{
//TODO 在这里实现LOAD图片
return ture;
}

void PicStatic::Draw()
{
//TODO 这里实现 在控件上绘制图片 (就是把LOAD的图片 贴到控件上…
[/Quote]

这种思想的确不错,有待于进一步研究,呵呵
yueyucanyang 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 jolong 的回复:]
C/C++ code
//继承的头文件中PicStatic.h
class PicStatic :: Public Static
{
Public :
CBitMap m_Pic;
Public :
BOOL LoadPic(CBitMap Pic);
void Draw();
}


//继承的实现 PicStatic.cpp

BOOL PicStatic::LoadPic(CBitMap Pic)
{
//TODO 在这里实现LOAD图片
return ture;
}

void PicStatic::Draw()
{
//TODO 这里实现 在控件上绘制图片 (就是把LOAD的图片 贴到控件上…
[/Quote]

实在太感谢了,现在问题已经基本解决。
jolong 2008-06-16
  • 打赏
  • 举报
回复

//继承的头文件中PicStatic.h
class PicStatic :: Public Static
{
Public :
CBitMap m_Pic;
Public :
BOOL LoadPic(CBitMap Pic);
void Draw();
}


//继承的实现 PicStatic.cpp

BOOL PicStatic::LoadPic(CBitMap Pic)
{
//TODO 在这里实现LOAD图片
return ture;
}

void PicStatic::Draw()
{
//TODO 这里实现 在控件上绘制图片 (就是把LOAD的图片 贴到控件上)
}

//然后在你的要贴图片的类中添加一个 STATIC控件
//然后这个类中会有一个声明STATIC控件的语句
CStatic m_static;
将这句改为: CPicStatic m_static;

//再在这个类的实现.cpp中
// 构造函数中初始化 m_static; 即
m_static.Load(m_pic) ;

//这样 你可以把你需要的那个图片随便放哪里了

//说的就这么多 如果还不明白的话 你不是要继续问下去 而是要去看 C++ 和 VC++的书
jolong 2008-06-16
  • 打赏
  • 举报
回复
其实还有一个比较简单的办法不用重绘背景 那就是你把图片的移动区域作为一个位图
位图上的目标图片 位置变动就可以了


你继承的控件有MOVEWINDOW()和 MOVETO 这个函数的话 就可以这样用啊
一般的控件是有这样的函数的

我的意思是 你继承控件的那个类 要在这个类中实现在控件声纳感绘制位图
然后移动这个控件 和你说的差不多意思啦
jolong 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 yueyucanyang 的回复:]
引用 12 楼 linpengpeng 的回复:
m_pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET ¦D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0),1.0f,0);//清除绘画区域和初始化所有参数
是不是没有清除绘画区域啊 哈哈 我是新人 不是很谅解哦


m_pd3dDevice这个是什么啊?
[/Quote]

这是他自己定义的一个变量 不过他没有说明到底定义了什么~~
jiqing_gao 2008-06-11
  • 打赏
  • 举报
回复
关键要重绘背景
linpengpeng 2008-06-11
  • 打赏
  • 举报
回复
m_pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0),1.0f,0);//清除绘画区域和初始化所有参数
是不是没有清除绘画区域啊 哈哈 我是新人 不是很谅解哦
jolong 2008-06-11
  • 打赏
  • 举报
回复
继承static 控件吧 自己绘图到控件上,注意提供LOAD图片的接口

如果自己不会继承控件的话 那得多看看书了

提供一点思想
定义新的类
class PicStatic :: Public Static

然后在其中定义函数来实现在控件上绘图和其他功能


如果以你的那种方式的话 背景是要重绘的 不然先前的图片不会消失
yueyucanyang 2008-06-11
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 jolong 的回复:]
继承static 控件吧 自己绘图到控件上,注意提供LOAD图片的接口

如果自己不会继承控件的话 那得多看看书了

提供一点思想
定义新的类
class PicStatic :: Public Static

然后在其中定义函数来实现在控件上绘图和其他功能


如果以你的那种方式的话 背景是要重绘的 不然先前的图片不会消失
[/Quote]

可以用MoveWindow()吗,这个能实现移动吗,静态控件也有MoveTo这个函数啊。
我还是有点不理解你这种思想,请多指教,你这种方法也需要在这个类中调用位图吗,然后在主对话框上显示。最后在主对话框上调用这个类的对象吗?
yueyucanyang 2008-06-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 linpengpeng 的回复:]
m_pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET ¦D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0),1.0f,0);//清除绘画区域和初始化所有参数
是不是没有清除绘画区域啊 哈哈 我是新人 不是很谅解哦
[/Quote]

m_pd3dDevice这个是什么啊?
yueyucanyang 2008-06-11
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 jolong 的回复:]
继承static 控件吧 自己绘图到控件上,注意提供LOAD图片的接口

如果自己不会继承控件的话 那得多看看书了

提供一点思想
定义新的类
class PicStatic :: Public Static

然后在其中定义函数来实现在控件上绘图和其他功能


如果以你的那种方式的话 背景是要重绘的 不然先前的图片不会消失
[/Quote]

如果用我那种方式如何重绘背景呢,因为这个函数的实现不是在OnPaint函数内。
jolong 2008-06-10
  • 打赏
  • 举报
回复
把图片作为一个控件来用
或者自己继承别人控件来做图片控件
然后 CREATE 控件 模拟移动的话 就用MOVETO函数
用后删除该控件
这样用很方便的
yueyucanyang 2008-06-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 linuxpgy 的回复:]
DeleteObject
[/Quote]
这样不行啊,还是显示图片呢!
yueyucanyang 2008-06-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jolong 的回复:]
把图片作为一个控件来用
或者自己继承别人控件来做图片控件
然后 CREATE 控件 模拟移动的话 就用MOVETO函数
用后删除该控件
这样用很方便的
[/Quote]
如何将一个图片做成控件,我现在是调用的一个位图,利用了定时器,每隔一段时间调用一个位图,但是它先前的图片不能消失,所以动画效果不好!
你这种方法好像不错,能不能仔细给个说明!~?
吴双1983 2008-06-10
  • 打赏
  • 举报
回复
不如,自己来个图片合成。呵呵、象当于,每隔段时间就合成一张图片。
linuxpgy 2008-06-09
  • 打赏
  • 举报
回复
DeleteObject
yueyucanyang 2008-06-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 greatws 的回复:]
就是画图、重绘的过程
[/Quote]
我调用了一个位图,现在可以移动了!
但是如何删除一个已经调用的位图呢?
不用ShowWindow函数。
彻底从内存中删除!
yueyucanyang 2008-06-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wooyz 的回复:]
?你要作仿真嘛??
[/Quote]
是啊 !
greatws 2008-06-09
  • 打赏
  • 举报
回复
就是画图、重绘的过程
xundeng 2008-06-09
  • 打赏
  • 举报
回复
模拟到什么程度?
加载更多回复(1)

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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