32上位机VC MFC播放动画美化触摸屏程序
功能展示
有时我们程序播放些动画会使程序更加有视觉冲击,如触摸屏上的程序都很漂亮,那么如何简单快速的播放动画呢?我们这个例程就来实现,只要简单使用两个函数便可实现,效果如图;
32上位机VC MFC播放动画美化触摸屏程序
要点提示 动画的播放我们可以使用MFC类库中的CAnimateCtrl控件,方便快速。该类的主要方法有 Open()方法,此函数用于播放AVI文件,在播放AVI动画前,首先得打开一个AVI文件,OPEN()语法如下 BOOL Open( LPCTSTR lpszFileName ); lpszFileName 为标识 AVI文件名称; BOOL Open( UINT nID ); nID 标识AVI资源ID 播放AVI时用PLAY,语法如下BOOL Play( UINT nFrom, UINT nTo, UINT nRep ); nFrom帧的起始位置,nTo,帧的终止位置,nRep循环资源,-1为始终循环播放; 其他更多方法,可以查阅MSDN; 要注意的是CAnimateCtrl只能播放没有声音的AVI文件,如果播放有声音的AVI,得使用微软公司的ActiveX插件:CAnimation,.
实现功能 1.新建基于对话框的应用程序 2.拖拽两个动画插件CAnimateCtrl,关联两具变量CAnimateCtrl m_Center; CAnimateCtrl m_Navigation; 3.在初始化时加载AVI动画 m_Navigation.Open("gd.avi"); m_Navigation.Play(0,-1,-1);
m_Center.Open("middle.avi"); m_Center.Play(0,-1,-1); 当然动画文件得存在 4.再放入一些图片,按钮等控件,效果如我们例程;
5.最后是控件位置的排版,我们例程是通用代码完成 - void CGkbc8Dlg::AdjustCtrol()
- {
- CRect btRect,bgRect;
- m_Navigation.GetWindowRect(btRect);
-
- CBitmap bm;
- BITMAP b;
- bm.LoadBitmap(IDB_BITMAP1);
- bm.GetBitmap(&b);
- //将窗口移动到桌面中心,且设置窗口大小
- int x = (GetSystemMetrics(SM_CXSCREEN)-b.bmWidth)/2;
- int y = (GetSystemMetrics(SM_CYSCREEN)-b.bmHeight-btRect.Height())/2;
- SetWindowPos(&wndTop,x,y,b.bmWidth,b.bmHeight+btRect.Height(),SWP_NOREDRAW);
- //将中心动画移动到背景图中心;
- GetDlgItem(IDC_BK)->GetWindowRect(bgRect);
- m_Center.GetWindowRect(btRect);
- x = (bgRect.Width()-btRect.Width())/2;
- y = (bgRect.Height()-btRect.Height())/2;
- m_Center.MoveWindow(x,y,btRect.Width(),btRect.Height());
- //将底部动画移动到底部位置
- GetWindowRect(bgRect);
- m_Navigation.GetWindowRect(btRect);
- y = bgRect.Height()-btRect.Height();
- m_Navigation.MoveWindow(0,y,btRect.Width(),btRect.Height());
- //将采购控件移动到固定位置
- GetDlgItem(IDC_SHOPCENTER)->MoveWindow(40,95,200,40);
- }
复制代码我们来演示下功能实现的整个过程
源码及视频下载 (仅在电脑可见)
|