图书管理系统启动界面的设计与实现

启动界面也即欢迎界面,即在应用程序启动时一闪而过的窗体界面。启动界面可以为用户提示一定的信息,用户无须对其进行任何的操作。启动界面是应用程序中最先显示给用户的一个界面,主要用于数据加载的延时。在数据加载时显示这样的界面,可以避免用户由于等待时间过长而产生焦虑。

一 启动界面的设计

1. 新建一个MFC基于对话框的应用程序,工程名为LibraryManagementSystem

注意:这里仅仅介绍启动界面的实现,其他的过程不做理会。

 

2.新建一个对话框资源,打开对话框的属性窗口。选择Style(外观)选项卡,将Border属性设置为None

 

3 .在工作区窗口中选择ResourceView选项卡,导入一个位图资源。

注意:这个位图资源即为启动界面显示的那张图片

 

4 .向对话框中添加1图像控件picture control),并通过图像控件显示导入的位图资源。具体操作为:选择图像控件的属性,属性栏中设置为:

图书管理系统启动界面的设计与实现_第1张图片

首先Type选择Bitmap,然后在Image中选择导入的那张启动画面的位图资源。


二 启动界面的淡入淡出效果

 

新添加头文件和源文件,用于实现启动画面相关的功能。分别命名为StartUp.h和StartUp.cpp

 

1.在对话框的头文件中定义常量,代码如下:

[cpp]  view plain copy
  1. #define  AW_BLEND   0x00080000   //淡入淡出  
  2. #define  AW_HIDE    0x00010000   //隐藏   

2 .在对话框的OnInitDialog函数中设置对话框显示时的淡入淡出效果,代码如下:

[cpp]  view plain copy
  1. BOOL CStartUp::OnInitDialog()  
  2. {  
  3. CDialogEx::OnInitDialog();  
  4. //对话框处于中心位置  
  5. CenterWindow();  
  6. //设置淡入淡出风格  
  7. DWORD dwStyle = AW_BLEND;  
  8. //在设置淡入淡出效果时需要加载User32.DLL动态链接库  
  9. //导入User32.DLL动态链接库  
  10. HINSTANCE hInst=LoadLibrary(_T("User32.DLL"));  
  11. //函数结构  
  12. typedef BOOL(WINAPI MYFUNC(HWND,DWORD,DWORD));  
  13. //声明函数  
  14. MYFUNC* AnimateWindow;  
  15. //调用函数  
  16. AnimateWindow=(MYFUNC*)::GetProcAddress(hInst,"AnimateWindow");  
  17. AnimateWindow(this->m_hWnd,750,dwStyle);  
  18. FreeLibrary(hInst);  
  19. SetTimer(1,3000,NULL);  
  20. return true;  
  21. }  

3 .处理WM_TIMER消息,在定时器中以淡入淡出效果关闭启动界面,代码如下:

[cpp]  view plain copy
  1. void CStartUp::OnTimer(UINT nIDEvent)  
  2. {  
  3. DWORD dwStyle=AW_BLEND;  
  4. HINSTANCE hInst=LoadLibrary(_T("User32.DLL"));  
  5. //typedef BOOL(WINAPI MYFUNC(HWND,DWORD,DWORD));  
  6. typedef BOOL(WINAPI MYFUNC(HWND,DWORD,DWORD));  
  7. MYFUNC* AnimateWindow;  
  8. AnimateWindow=(MYFUNC*)::GetProcAddress(hInst,"AnimateWindow");  
  9. AnimateWindow(this->GetSafeHwnd(),750,AW_HIDE|dwStyle);  
  10. FreeLibrary(hInst);  
  11. //关闭定时器  
  12. KillTimer(1);  
  13. //关闭启动界面对话框  
  14. CDialogEx::OnOK();  
  15. CDialogEx::OnTimer(nIDEvent);  
  16. }   

4 .显示启动界面

程序启动时首先显示的是启动界面,在主对话框界面对应的源文件(即LibraryManagementSystemDlg.cpp)中的OnInitDialog函数中添加代码:

[cpp]  view plain copy
  1. BOOL CLibraryManagementSystemDlg::OnInitDialog()  
  2. {  
  3.     。。。。  
  4.     CStartUp startupDlg;  
  5.     startupDlg.DoModal();  
  6. }  

最后不要忘记了添加头文件的引用,#include "StartUp.h"。

你可能感兴趣的:(MFC)