WEB开发网
开发学院软件开发VC 在VC应用程序中插入微型动画 阅读

在VC应用程序中插入微型动画

 2010-05-25 20:37:00 来源:WEB开发网   
核心提示:二、编程与实现首先,建立图表资源,在VC应用程序中插入微型动画(2),在VC6.0中利用资源编辑器,建立几幅图表,并创建图像列表:int CImageView::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CView::OnCreate(lpCreateStruct) ==

二、编程与实现

首先,建立图表资源。在VC6.0中利用资源编辑器,建立几幅图表,IDI_ICON1、IDI_ICON2、IDI_ICON3....,在编辑图标时选者Custom,如图1,将图标设置成大小为64X32,见图2。由于Windows的各个部件不完全相同,其实现方法也不完全相同,下面对在窗口不同位置显示动画的方法分别介绍。

1、在View类客户区绘制动画

在类的定义文件中加入下列变量:

POINT pt1;//图像显示的位置
int m_Play; //将要显示图像的索引
void CreateImageList();//创建图像列表的函数
CImageList m_ImageList1;//图像列表对象
int m_ImageNumber; //图像列表中图像的总数目

首先在口在函数时初始化pt1,m_Play,m_ImageNumber:

CImageView::CImageView()
{
// TODO: add construction code here
pt1.x =1;
pt1.y =1;
m_Play=0;
m_ImageNumber=0;
}
CreateImageList()的实现如下:
void CImageView::CreateImageList()
{
m_ImageList1.Create (64,32,ILC_COLOR,5,2);
HICON hIcon = ::LoadIcon(AfxGetResourceHandle(),
MAKEINTRESOURCE(IDI_ICON1));
m_ImageList1.Add(hIcon);
m_ImageNumber++;
hIcon = ::LoadIcon(AfxGetResourceHandle(),
MAKEINTRESOURCE(IDI_ICON2));
m_ImageList1.Add(hIcon);
m_ImageNumber++;
hIcon = ::LoadIcon(AfxGetResourceHandle(),
MAKEINTRESOURCE(IDI_ICON3));
m_ImageList1.Add(hIcon);
m_ImageNumber++;
.........//把您要播放的所有资源加入图像列表。
}

在OnCreate函数中设置计时器,并创建图像列表:

int CImageView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
CreateImageList();
SetTimer(1,500,NULL);
return 0;
}

响应ON_TIMER消息,显示动画:

void CImageView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CDC *pDC=GetDC();
if(m_Play>m_ImageNumber)
m_Play=0;
m_ImageList1.Draw(pDC,m_Play,pt1,ILD_TRANSPARENT);
m_Play++;
ReleaseDC(pDC);
CView::OnTimer(nIDEvent);
}

最后别忘了在OnDestroy函数中,增加在窗口撤销时中止定时器的代码。

Tags:VC 应用程序 插入

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接