如何在MFC程序中添加启动画面

启动画面是应用程序启动时展示给用户的一个临时界面,它不仅能够提升用户体验,还能展示应用程序的品牌形象。本文将向展示如何在Visual Studio环境下的MFC应用程序中快速添加启动画面。

准备工作

首先,需要准备一张想要用作启动画面的位图图片。本文以Visual Studio2005为例进行说明,但同样适用于更早的版本。

添加位图资源

打开项目资源视图,展开资源树,右键点击.rc文件,选择“添加资源”。在弹出的对话框中选择“位图”,然后点击“导入”按钮。浏览到想要用作启动画面的BMP文件位置,并点击打开。

修改资源ID

在资源视图中展开位图分支,将其ID更改为IDB_SPLASH。

创建对话框资源

右键点击对话框分支,选择“插入对话框”。如果新对话框没有在资源编辑器中打开,双击新创建的IDD_DIALOG1打开它。删除对话框中的“确定”和“取消”按钮。

设置对话框属性

更改对话框的以下属性:

  • ID设置为IDD_SPLASH
  • 边框设置为细边框
  • 标题栏设置为false
  • 置顶设置为true
  • 居中设置为true

会看到一条细蓝线,用鼠标拖动它直到它与对话框的边缘对齐。

添加图片控件

从工具箱中拖动一个图片控件到对话框中,并将其放置在左上角。根据启动画面图片的大小,调整对话框的大小,使其比图片稍大。可能需要再次调整细蓝线的大小。

设置图片控件属性

选中图片控件,将其ID更改为IDC_SPLASH,类型更改为Bitmap。会发现,当类型设置为Bitmap后,图像属性不再是灰色的。使用下拉菜单将图像属性更改为IDB_SPLASH。

调整对话框大小

调整对话框大小,使其刚好容纳图片。

添加类

右键点击对话框,选择“添加类”。设置类名为CDialogSplash,然后点击完成。

处理计时器消息

在类视图中选择CDialogSplash,然后在属性区域点击“消息”按钮,滚动到WM_TIMER。使用下拉菜单为CDialogSplash类添加一个OnTimer函数。

void CDialogSplash::OnTimer(UINT_PTR nIDEvent) { CDialog::OnOK(); }

初始化对话框

在类视图中选择CDialogSplash,然后点击“重写”按钮,滚动到OnInitDialog。使用下拉菜单为CDialogSplash类添加一个OnInitDialog函数。更新代码如下:

BOOL CDialogSplash::OnInitDialog() { CDialog::OnInitDialog(); CRect rectPic, rectWin; GetWindowRect(&rectWin); m_pic.GetWindowRect(&rectPic); MoveWindow(rectWin.left, rectWin.top, rectPic.Width(), rectPic.Height()); return TRUE; }

使用启动画面

大多数人希望在主程序加载完成之前显示启动画面,因此将在Application类的InitInstance函数的顶部附近调用启动画面。

添加启动画面调用

在类视图中点击应用程序类。以本示例中创建的演示项目为例,选择CEasySplashApp。

添加变量

右键点击CEasySplashApp,选择“添加变量”。将访问权限更改为protected,类型更改为CDialogSplash,名称更改为m_splash。

初始化实例

在类视图中双击CEasySplashApp类的InitInstance函数,并在函数顶部添加以下代码:

BOOL CEasySplashApp::InitInstance() { CWinApp::InitInstance(); m_splash.Create(IDD_SPLASH, m_pMainWnd); m_splash.ShowWindow(SW_SHOW); m_splash.SetTimer(1, 2000, NULL); }

编译并运行

编译项目并运行它。应该能够在程序启动时看到启动画面,并在计时器运行完毕后关闭。

额外功能

在演示项目中,添加了一个按钮来再次显示启动画面,这样就不必一直重新启动程序来查看启动画面了。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485