熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

用VC.NET制作啟動屏幕的新方法

2022-06-13   來源: .NET編程 

  在利用VC+編程過程中遇到制作啟動屏幕的問題幾經試驗得出一種方便簡單的制作方法
  
  基本原理是利用對話框窗口的特性在啟動時首先創建對話框設置一個獲得位圖文件的句柄利用Picture控件的SetBitmap(HBITMAP hBitmap)方法使位圖文件充滿整個Picture控件窗口最後設置定時器整個啟動屏幕就制作完成
  
  下面介紹具體實現步驟
   打開的開發環境新建VC+中的MFC應用程序輸入工程名稱MySample點擊確定完成
  
   打開資源視圖添加對話框更改ID為ID_DIALOG_SPLASH設置對話框Center屬性為TrueBorder屬性為
  
   在對話框中添加Picture控件設置Picture控件的ID號為ID_PICType屬性為位圖Center image屬性為True然後調整標尺使對話框沒有外框調整對話框的大小以適應啟動屏幕的要求調整Picture的寬高使其充滿整個對話框窗口
  
   雙擊對話框窗口彈出類向導對話框在類名中鍵入CSplash選擇基類為Cdialog點擊確定定義控件Picture的控件變量為m_pic
  
   在Csplash類中重載OnInitDialog()函數添加消息WM_CHARWM_TIMERWM_LBUTTONUPWM_MBUTTONUPWM_RBUTTONUP
  
   在OnInitDialog()函數中添加代碼如下
  
  BOOL CSplash::OnInitDialog()
  {
  CDialog::OnInitDialog();
  //設置啟動窗口背景在整個窗口中充滿位圖
  CRect lRect;
  m_picGetClientRect(&lRect);//得到Picture控件的窗口大小
  lRectNormalizeRect();
  //設置位圖句柄
  HBITMAP hbitmap=(HBITMAP)LoadImage(NULLsplashbmp//更改你喜歡的位圖文件
  IMAGE_BITMAPlRectWidth()lRectHeight()
  LR_LOADFROMFILE|LR_CREATEDIBSECTION);
  m_picSetBitmap(hbitmap);
  //設置定時器
  SetTimer(NULL);
  return TRUE;
  }
  
   在OnTimer(UINT nIDEvent) 函數中添加代碼如下
  
  void CSplash::OnTimer(UINT nIDEvent)
  {
  static int i;
  i++;
  if(i > )
  {
  //銷毀定時器
  KillTimer();
  this>OnOK();
  }
  CDialog::OnTimer(nIDEvent);
  }
  
   在OnLButtonUpOnLButtonUpOnLButtonUpOnChar函數中加入以下代碼
  
  {
  KillTimer();
  this>OnOK();
  }
  
   在MySampleCpp中引入頭文件
  
  #include Splashh
  
  在InitInstance()函數中加入代碼
  
  BOOL CMySampleApp::InitInstance()
  {
  …
  AfxEnableControlContainer();
  CSplash splash;
  splashDoModal();
  …
  }

From:http://tw.wingwit.com/Article/program/net/201311/11913.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.