设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 742|回复: 2
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-4 02:16:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠:小妹初学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); 实现了一副图的添加显示,想知道根据时间变换图片应该怎么实现,屡试屡败!~呜呜 谢谢赐教,请具体点(*^__^*) 嘻嘻……
2#
发表于 2009-11-4 02:16:58 | 只看该作者
先插入图片资源,要不就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这张图片,大概就这个样字了
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-4 02:16:59 | 只看该作者
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);

}
回复 支持 反对

使用道具 举报

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

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 00:53 , Processed in 0.096042 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

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