资源简介
MFC窗口特效之动画效果,可以应用在一个对话框或者其派生类上,实现动画打开和动画关闭效果
代码片段和文件信息
// DlgFlash.cpp: implementation of the CDlgFlash class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “CDlgFlash.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDlgFlash::CDlgFlash(CDialog* Dlg)
{
flashDlg=Dlg;
Timer1_ID=9;
Timer2_ID=10;
InitCDlg();
}
CDlgFlash::CDlgFlash(CDialog* Dlgint Timer1_IDint Timer2_ID)
{
flashDlg=Dlg;
this->Timer1_ID=Timer1_ID;
this->Timer2_ID=Timer2_ID;
InitCDlg();
}
CDlgFlash::~CDlgFlash()
{
}
void CDlgFlash::InitCDlg(){
//获得窗口预设的大小
CRect dlgRect;
flashDlg->GetWindowRect(dlgRect);
//获取屏幕大小
CRect desktopRect;
flashDlg->GetDesktopWindow()->GetWindowRect(desktopRect);
//将窗口开始大小设为0,居中
flashDlg->MoveWindow(dlgRect.left + dlgRect.Width() / 2
dlgRect.top + dlgRect.Height() / 2
0
0
);
//数据成员初始化
OriginalWidth=dlgRect.Width();
OriginalHeight=dlgRect.Height();
xCreateSpeed=2;
yCreateSpeed=3;
xDestorySpeed=2;
yDestorySpeed=3;
//设定定时器Timer1_ID
flashDlg->SetTimer(Timer1_ID10NULL);
}
void CDlgFlash::OnTimer(UINT nIDEvent){
{
//获得此时窗口的实际大小
CRect dlgRect;
flashDlg->GetWindowRect(&dlgRect);
//获得桌面的大小
CRect desktopRect;
flashDlg->GetDesktopWindow()->GetWindowRect(desktopRect);
//如果是窗口弹出过程,窗口居中,逐渐增大窗口
if(nIDEvent ==Timer1_ID)
{
flashDlg->MoveWindow(
(desktopRect.Width() - dlgRect.Width()) / 2
(desktopRect.Height() - dlgRect.Height()) / 2
xCreateSpeed+dlgRect.Width()
yCreateSpeed+dlgRect.Height()
);
//不要超过窗口预设的宽度
if(dlgRect.Width() >=OriginalWidth)
xCreateSpeed=0;
//不要超过窗口预设的高度
if(dlgRect.Height() >=OriginalHeight)
yCreateSpeed=0;
//停止变化,关闭定时器Timer1_ID
if((dlgRect.Width() >=OriginalWidth) && (dlgRect.Height() >=OriginalHeight))
flashDlg->KillTimer(Timer1_ID);
}
//如果是窗口关闭过程,则逐渐缩小窗口
if(nIDEvent == Timer2_ID)
{
flashDlg->MoveWindow(DestoryPosX
DestoryPosY
dlgRect.Width()
dlgRect.Height()-yDestorySpeed
);
//当高度等于零后高度就不在变化
//if(dlgRect.Height() <=0)
//停止变化,关闭定时器Timer2_ID,并且关闭窗口
if(dlgRect.Height() <=0)
{
yDestorySpeed=0;
flashDlg->KillTimer(Timer1_ID);
flashDlg->DestroyWindow();
}
}
}
}
void CDlgFlash::StartFlashDestroyDlg(){
CRect dlgRect;
//获取窗口当前的位置并保存
flashDlg->GetWindowRect(&dlgRect);
DestoryPosX=dlgRect.left;
DestoryPosY=dlgRect.top;
//开始启动定时器Timer2_ID
flashDlg->SetTimer(Timer2_ID10NULL);
}
void CDlgFlash::SetFlashCreateSpeed(int xint y){
xCreateSpeed=x;
xCreateSpeed=y;
}
void CDlgFlash::SetFlashDestroySpeed(int y){
yDestorySpeed=y;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3104 2010-04-02 15:18 FileHandler\CDlgFlash.cpp
文件 1763 2010-04-01 15:17 FileHandler\CDlgFlash.h
文件 37620 2010-04-02 15:17 FileHandler\copyfile.aps
文件 1858 2010-04-02 15:48 FileHandler\copyfile.clw
文件 2196 2010-03-30 12:30 FileHandler\copyfile.cpp
文件 4326 2010-03-31 13:46 FileHandler\copyfile.dsp
文件 541 2010-03-28 18:03 FileHandler\copyfile.dsw
文件 1346 2010-03-28 18:03 FileHandler\copyfile.h
文件 99328 2010-04-02 15:48 FileHandler\copyfile.ncb
文件 55808 2010-04-02 15:48 FileHandler\copyfile.opt
文件 1648 2010-04-02 15:48 FileHandler\copyfile.plg
文件 5876 2010-04-02 15:17 FileHandler\copyfile.rc
文件 10591 2010-04-02 15:48 FileHandler\copyfileDlg.cpp
文件 1952 2010-04-02 15:13 FileHandler\copyfileDlg.h
文件 9707 2010-04-02 15:18 FileHandler\Debug\CDlgFlash.obj
文件 0 2010-04-02 15:18 FileHandler\Debug\CDlgFlash.sbr
文件 3654656 2010-04-02 15:18 FileHandler\Debug\copyfile.bsc
文件 118876 2010-04-02 15:18 FileHandler\Debug\copyfile.exe
文件 296664 2010-04-02 15:18 FileHandler\Debug\copyfile.ilk
文件 14986 2010-04-02 15:13 FileHandler\Debug\copyfile.obj
文件 6880400 2010-04-01 14:44 FileHandler\Debug\copyfile.pch
文件 427008 2010-04-02 15:18 FileHandler\Debug\copyfile.pdb
文件 4072 2010-04-02 15:17 FileHandler\Debug\copyfile.res
文件 0 2010-04-02 15:13 FileHandler\Debug\copyfile.sbr
文件 54828 2010-04-02 15:16 FileHandler\Debug\copyfileDlg.obj
文件 0 2010-04-02 15:16 FileHandler\Debug\copyfileDlg.sbr
文件 105770 2010-04-01 14:44 FileHandler\Debug\StdAfx.obj
文件 1369712 2010-04-01 14:44 FileHandler\Debug\StdAfx.sbr
文件 205824 2010-04-02 15:18 FileHandler\Debug\vc60.idb
文件 372736 2010-04-02 15:18 FileHandler\Debug\vc60.pdb
............此处省略21个文件信息
- 上一篇:遗传算法解八数码问题
- 下一篇:mfc按CEdit编辑框弹出自定义键盘
评论
共有 条评论