(1)新建一个基于对话框的MFC应用程序CartoonDialogTest,删除对话框中原有控件。
(2)把res目录下的bk.bmp导入到工程中,对话框上拖拉一个Picture Control控件,并让Picture Control控件加载该图片,设置Type属性为Bitmap,设置Image属性为IDB_BITMAP1即可。
(3)在对话框类CCartoonDialogTestDlg中定义成员变量:
CPoint m_point;
int m_width,m_height,m_dx,m_dy;
(4)为对话框类CCartoonDialogTestDlg添加定时器消息函数,代码如下:
void CCartoonDialogTestDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CRect rect,rc;
GetWindowRect(rect);
GetDesktopWindow()->GetWindowRect(rc);
MoveWindow((-m_dx+rc.Width()-rect.Width())/2,(-m_dy+rc.Height()-rect.Height())/2,+m_dx+rect.Width(),+m_dy+rect.Height());
if(rect.Height()>=m_height)
{
m_dy=0;
}
if((rect.Width()>=m_width)&&(rect.Height()>=m_height))
{
KillTimer(1);
}
CDialogEx::OnTimer(nIDEvent);
}
(5)在BOOL CCartoonDialogTestDlg::OnInitDialog()中添加如下代码:
CRect rect,rc;
GetWindowRect(rect);
GetDesktopWindow()->GetWindowRect(rc);
MoveWindow((rc.Width()-rect.Width())/2,(rc.Height()-rect.Height())/2,0,0);
m_width=rect.Width();
m_height=rect.Height();
m_dx=2;
m_dy=2;
SetTimer(1,10,NULL);
保存并运行工程,运行结果就会动画形式出现。