|
This article including source code copyright � 2001 Codejock
Software, All Rights Reserved. Feel free to use any of the
source code found in this article without restriction. |
Introduction
If you have ever created a dialog application, and then tried to add
a splash screen using the splash screen component, you may have found
out that it won't allow you to. This article is a quick tip for
adding a splash to your dialog application using the CSplashWnd
class. This class is an enhanced version of the one that is
normally generated by the splash component for a document view project.
In order to use the CSplashWnd
in our dialog based
application, we will have to override three functions, CDialog::OnInitDialog()
,
CWinApp::InitInstance()
and
CWinApp::PreTranslateMessage(MSG* pMsg)
. OnInitDialog
and
InitInstance
should have already been added to your project when you
created it if you used the AppWizard, however you may have to add
PreTranslateMessage
to your CWinApp
derived class.
Step 1:
Add the following line of code to your CDialog::OnInitDialog
method just before it looses scope. The first argument to ShowSplashScreen
is the time out value in milliseconds, this is how long the splash
screen will be displayed before it closes. The second argument is
the resource identifier of the bitmap image that we will be using as the
splash screen. The last argument is the parent window, this parameter
can be NULL
.
CSplashWnd::ShowSplashScreen(3000, IDB_SPLASH24, this);
Step 2:
Add the following line of code, toward the very beginning of the CWinApp::InitInstance
, just after the call
ParseCommandLine(...)
.
You will need to add ParseCommandLine
if it is not already included.
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
CSplashWnd::EnableSplashScreen(cmdInfo.m_bShowSplash);
Step 3:
Use Class Wizard to override CWinApp::PreTranslateMessage(MSG* pMsg)
,
and add the following lines of code:
BOOL CMyApp::PreTranslateMessage(MSG* pMsg)
{
if (CSplashWnd::PreTranslateAppMessage(pMsg)) {
return TRUE;
}
return CWinApp::PreTranslateMessage(pMsg);
}
History
9 Aug 2002 - rewritten extensively.