MFC,splash启动画面(改)

 1 #ifndef _SPLASH_SCRN_
 2 #define _SPLASH_SCRN_
 3 
 4 
 5 //这是一个启动画面类,这里注释便不多写了,网上有
 6 #pragma once  
 7 // CWzdSplash  
 8 class CWzdSplash : public CWnd
 9 {
10     DECLARE_DYNAMIC(CWzdSplash)
11 public:
12     CWzdSplash();
13     virtual ~CWzdSplash();
14 protected:
15     DECLARE_MESSAGE_MAP()
16 public:
17     CImage image;
18     void Create();
19     afx_msg void OnPaint();
20 
21 };
22 
23 
24 #endif
// WzdSplash.cpp : 实现文件
//

#include "stdafx.h"
#include "Weather.h"
#include "WzdSplash.h"



// CWzdSplash  
IMPLEMENT_DYNAMIC(CWzdSplash, CWnd)
CWzdSplash::CWzdSplash()
{
}
CWzdSplash::~CWzdSplash()
{
}
BEGIN_MESSAGE_MAP(CWzdSplash, CWnd)
    ON_WM_PAINT()
END_MESSAGE_MAP()
// CWzdSplash 消息处理程序  
void CWzdSplash::Create()
{
    image.Load(_T("res/000.gif"));

    CBitmap m_bitmap;
    HBITMAP hbitmap = image.Detach();
    BITMAP bitmap;
    m_bitmap.Attach(hbitmap);
    m_bitmap.GetBitmap(&bitmap);

    CreateEx(0,AfxRegisterWndClass(0, AfxGetApp()->LoadStandardCursor(IDC_ARROW)),
        NULL, WS_POPUP | WS_VISIBLE, 0, 0, bitmap.bmWidth, bitmap.bmHeight, NULL, NULL);

    CWnd::CenterWindow();
    CWnd::UpdateWindow();
}
void CWzdSplash::OnPaint()
{
    // TODO: 在此处添加消息处理程序代码  
    // 不为绘图消息调用 CWnd::OnPaint()  
    CPaintDC dc(this); // device context forpainting
    image.Load(_T("res/000.gif"));
    image.Draw(dc.m_hDC, 1, 1);// draw bitmap  
    
}


// CWzdSplash 消息处理程序

 

 

说明:

 image.Load(_T("res/000.gif"));这里换成你的图片的路径。

然后在你的OnCreat()函数中添加

CWzdSplash wndSplash; //创建启动窗口类的实例
wndSplash.Create();
Sleep(1000);
wndSplash.DestroyWindow();//销毁初始画面窗口

 

完成

posted @ 2014-09-02 11:06  学需持  阅读(641)  评论(0编辑  收藏  举报