找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 795|回复: 2

求助mfc对话框中想实现图片的不断变化,高手请进~~

[复制链接]
发表于 2009-11-4 02:16:57 | 显示全部楼层 |阅读模式 IP:江苏扬州
各位大侠:小妹初学mfc,想在对话框上利用ontimer()实现图片的变换,请问用什么方法。 现在设置了通过在对话框的onpain()函数中利用 CPaintDC dc(this); CDC *pDC=new CDC; pDC->CreateCompatibleDC(&dc); pDC->SelectObject(myBitmap); 和在 OnInitDialog()函数最里添加如下代码: myBitmap.LoadBitmap(IDB_BITMAP1); myBitmap.GetObject(sizeof(BITMAP),&bm); 实现了一副图的添加显示,想知道根据时间变换图片应该怎么实现,屡试屡败!~呜呜 谢谢赐教,请具体点(*^__^*) 嘻嘻……
发表于 2009-11-4 02:16:58 | 显示全部楼层 IP:江苏扬州
先插入图片资源,要不就LoadImaage函数动态的插入图片所有图片,插入图片后,会有个图片的ID,比如默认的是IDB_BITMAP1 IDB_BITMAP2,...
打开resource.h这个文件,里面记录了这些图片的ID好,查看ID这个宏的具体值,比如1111,(注意,先前的图片最好是一次性插入),那么IDB_BITMAP1就是1111,IDB_BITMAP2,就是11112,一次类推,然后申请一个类成员,比如
int m_pos=11111


然后在InitDialog函数调用SetTimer,然后对对话框响应WM_TIMER消息,
在OnTimer函数中加入如下代码

CBitmap bitmap;
bitmap.LoadBitmap(m_pos); //载入第一张图片

//画图片
..............


m_pps++; //下次掉用这个函数时,上面的bitmap.Loadbitmap就是载入1112,
//也就是IDB_BITMAP2这张图片,大概就这个样字了
回复

使用道具 举报

发表于 2009-11-4 02:16:59 | 显示全部楼层 IP:江苏扬州
GDI的就直接使用吧,, 不过现在还有更好的办法是 用GDI+ ,上网看相关资料
void ShowBmp(CString picname,CDC *pdc)
{
m_onpaint_name=picname;
HBITMAP hBitmap=(HBITMAP) ::LoadImage(NULL,picname,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);

ASSERT(hBitmap);
HBITMAP OldBitmap;
CDC MemDC;
CRect rect;
MemDC.CreateCompatibleDC(pDc);

GetClientRect(rect);
OldBitmap=(HBITMAP)MemDC.SelectObject(hBitmap);
pDc->BitBlt(3,3,(rect.Width())-3,(rect.Height())-3,&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(OldBitmap);
MemDC.DeleteDC();
DeleteObject((HGDIOBJ)hBitmap);

}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 05:39 , Processed in 0.279820 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表