新微赢技术网

标题: 求助mfc对话框中想实现图片的不断变化,高手请进~~ [打印本页]

作者: 梦的放肆    时间: 2009-11-4 02:16
标题: 求助mfc对话框中想实现图片的不断变化,高手请进~~
各位大侠:小妹初学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); 实现了一副图的添加显示,想知道根据时间变换图片应该怎么实现,屡试屡败!~呜呜 谢谢赐教,请具体点(*^__^*) 嘻嘻……
作者: 随chu风liu    时间: 2009-11-4 02:16
先插入图片资源,要不就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
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);

}




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2