WEB开发网
开发学院软件开发VC VC++工程中加入SplashScreen原理释解 阅读

VC++工程中加入SplashScreen原理释解

 2010-05-12 20:35:28 来源:WEB开发网   
核心提示:再看看CWinApp和CMainFrame类中发生了什么样的改变:(1)在CWinApp::InitInstance()中调用CSplashWnd::EnableSplashScreen()设置c_bShowSplashWnd;在PreTranslateMessage()中调用CSplashWnd::PreTransl

再看看CWinApp和CMainFrame类中发生了什么样的改变:

(1)在CWinApp::InitInstance()中调用CSplashWnd::EnableSplashScreen()设置c_bShowSplashWnd;

在PreTranslateMessage()中调用CSplashWnd::PreTranslateAppMessage(),将键盘和鼠标消息传递给CSplashWnd对象,从而进一步调用CSplashWnd::HideSplashScreen()实现SplashScreen窗口的自身销毁。

(2)在CMainFrame对象的OnCreate()中调用CSplashWnd::ShowSplashScreen()创建一个静态的SplashScreen窗口对象c_pSplashWnd,并设置其父窗口为CMainFrame。在这个过程中,CSplashWnd自身会通过创建来设置一个定时器,然后定时器在第一个周期触发时便调用HideSplashScreen()销毁自己。

(3) 而CMainFrame对象的窗口创建消息则是由CWinApp对象在InitInstance()中通过

m_pMainWnd->ShowWindow()调用触发的。

整个过程可以用下图表示,基本原理就是由CMainFrame来创建CSplashWnd,然后由CSplashWnd自己的定时器触发定时消息来销毁窗口。所以 CSplashWnd 的加入与SDI还是MDI都没有关系。

上一页  1 2 3 

Tags:VC 工程 加入

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接