如何给基于对话框的应用加启动画面
展开全部
本文将一步一步教你实现每一个细节。其实VC++开发环境中有一个现成的 Splash Screen 组件,用这个组件很容易实现基于框架类(也就是CMainFrame)的程序的启动画面,那么如果是对话框程序,没有框架类怎么办呢?所以这个组件功能不是想象的那么强。要实现基于对话框应用程序的启动画面必须另辟蹊径。本文将定制一个C++类:CSplashWnd,用这个类可以增强原来的 Splash Screen 组件功能。它不但可以在用于具有CMainFrame的程序,同时也可以用于基于对话框应用的程序。
CSplashWnd的使用方法如下:
思路 需要改写三个函数: CDialog::OnInitDialog() CWinApp::InitInstance() CWinApp::PreTranslateMessage(MSG* pMsg) 如果你用应用程序向导(AppWizard)创建工程,那么它会自动在CWinApp.h和CWinApp.cpp文件中产生 OnInitDialog 和 InitInstance 的声明和实现的默认代码,但是与CWinApp::PreTranslateMessage(MSG* pMsg)有关的处理必须自己添加到CWinApp派生类中。
具体步骤: 第一步: 在CDialog::OnInitDialog()方法末尾添加下列代码: // 创建并显示启动画面 CSplashWnd::ShowSplashScreen(3000, IDB_SPLASH24, this); ShowSplashScreen函数的第一个参数是超时时间,以毫秒计算,表示启动画面持续显示的时间;第二个参数是位图图像的资源标示符,表示启动画面显示的图像。最后一个参数是父窗口,此参数可以为NULL。
第二步: 在CWinApp::InitInstance()方法的开始处添加如下代码: // Enable the splash screen component based on the command line info. CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); CSplashWnd::EnableSplashScreen(cmdInfo.m_bShowSplash); 这几行代码的作用是让程序能解析和处理命令行信息。
微测检测5.10
2023-05-10 广告
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇...
点击进入详情页
本回答由微测检测5.10提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询