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

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

 2006-07-23 11:25:17 来源:WEB开发网   
核心提示: 通过以上几步的操作,就会在工程目录下生成Splash.CPP和Splash.H文件,VC++工程中加入 SplashScreen 原理释解(2),这便是CSplashWnd类的实现文件与头文件,同时工程中CWinApp与CMainFrame类中的部分代码也会被修改,以实现CSplashWn

通过以上几步的操作,就会在工程目录下生成Splash.CPP和Splash.H文件,这便是CSplashWnd类的实现文件与头文件。同时工程中CWinApp与CMainFrame类中的部分代码也会被修改,以实现CSplashWnd窗口的消息处理。

接着我们来看看 CSplashWnd 类的声明与主要的代码(已经过删减):

//类的声明

class CSplashWnd : public CWnd
{
  CSplashWnd();
  ~CSplashWnd();
  virtual void PostNcDestroy();  
  static void EnableSplashScreen(BOOL bEnable = TRUE);
  static void ShowSplashScreen(CWnd* pParentWnd = NULL);
  static BOOL PreTranslateAppMessage(MSG* pMsg);
  BOOL Create(CWnd* pParentWnd = NULL);
  void HideSplashScreen();
  afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  afx_msg void OnPaint();
  afx_msg void OnTimer(UINT nIDEvent);
  
  CBitmap m_bitmap;   //SplashScreen窗口显示用的位图对象
  static BOOL c_bShowSplashWnd; //是否要显示SplashScreen的标志量
  static CSplashWnd* c_pSplashWnd;
};    

//是否使用SplashScreen

void CSplashWnd::EnableSplashScreen(BOOL bEnable)
{
  c_bShowSplashWnd = bEnable;
}

//创建CsplashWnd对象,并调用Create()创建窗口

void CSplashWnd::ShowSplashScreen(CWnd* pParentWnd)
{
  //如果不要显示SplashScreen或SplashWnd对象已经被创建则返回
  if (!c_bShowSplashWnd || c_pSplashWnd != NULL)
    return;
    
  c_pSplashWnd = new CSplashWnd;
  
  if (!c_pSplashWnd->Create(pParentWnd))
    delete c_pSplashWnd;
  else
    c_pSplashWnd->UpdateWindow();
}

//装入SplashScreen欲显示位图,通过CreateEx()激发OnCreate()完成窗口创建与设置

上一页  1 2 3 4  下一页

Tags:VC 工程 加入

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