(一)VC++ 6.0实例之窗口的几种显示方式

Posted on 2013-03-14 19:07  探索者_fhw  阅读(1861)  评论(0)    收藏  举报

如果你有使用过现在的金山毒霸,相信都见到了那种金山毒霸的窗口显示方式,由上下到中间的显示方式,这种显示方式,对于应用窗体的人性化以及软件的外表的吸引力挺好的。下面,便是这种窗体的显示类型的源代码(当然了,这里说的是windows平台):

 

使用函数AnimateWindow 语法:

BOOL AnimateWindow(HWND hWnd,DWORD dwTime,DWORD dwFlags)

参数说明: hWnd:制定产生动画的窗口句柄 dwTime:指明动画持续的时间(单位为纳秒),完成一个动画的标准时间为200纳秒 dwFlags:制定动画类型。这个参数可以是一个或多个下列标志的组合 返回值:如果函数成功,则返回值为非零;如果函数失败,则返回值为零。

#define AW_HOR_POSITIVE             0x00000001   //自左至右显示窗口。

#define AW_HOR_NEGATIVE             0x00000002   //自右至左显示窗口

#define AW_VER_POSITIVE             0x00000004   //自顶向下显示窗口

#define AW_VER_NEGATIVE             0x00000008   //自底向上显示窗口

#define AW_CENTER                   0x00000010   //若使用了AW_HIDE标志,则使窗口向内重叠,即收缩窗口。若未使用AW_HIDE标志,则使窗口向外扩展,即展开窗口。

#define AW_HIDE                     0x00010000   //隐藏窗口,默认则显示窗口

#define AW_ACTIVATE                 0x00020000   //激活窗口

#define AW_SLIDE                    0x00040000   //滑动类型 #define AW_BLEND                    0x00080000   //淡入淡出效果

实例代码:

 打开时候的代码:  

 

 CenterWindow(); 

 DWORD dwStyle=AW_CENTER;  

 HINSTANCE hInst=LoadLibrary(_T("User32.DLL"));  

 typedef BOOL(WINAPI MYFUNC(HWND,DWORD,DWORD));  

 MYFUNC* AnimateWindow;  

 AnimateWindow=(MYFUNC *)::GetProcAddress(hInst,"AnimateWindow");  

 AnimateWindow(this->m_hWnd,1000,dwStyle);  

 FreeLibrary(hInst);

 关闭时候的代码:

 DWORD dwStyle=AW_CENTER;  

 HINSTANCE hInst=LoadLibrary(_T("User32.DLL"));  

 typedef BOOL(WINAPI MYFUNC(HWND,DWORD,DWORD));  

 MYFUNC* AnimateWindow;  AnimateWindow=(MYFUNC *)::GetProcAddress(hInst,"AnimateWindow");

 AnimateWindow(this->GetSafeHwnd(),700,AW_HIDE|dwStyle);

 //AnimateWindow(this->m_hWnd,1000,dwStyle);

  FreeLibrary(hInst);

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3