VC2005不能像VC++6.0那样在工程里加
怎样加哦?
听说要添加一个Splash类,哪位有?给个啊
谢谢!

解决方案 »

  1.   


    #pragma once
    #include "afxwin.h"
    /*****************
    使用本类前需要将Stdafx.h中的版
    本信息改成#define WINVER 0x0500
    用以支持AnimateWindow()函数
    *****************/// CSplashWndclass CSplashWnd : public CWnd
    {
    DECLARE_DYNAMIC(CSplashWnd)public:
    //CSplashWnd();
    CSplashWnd(UINT bmpID,UINT nTime);
    virtual ~CSplashWnd();protected:
    DECLARE_MESSAGE_MAP()
    public:
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
    afx_msg void OnClose();
    afx_msg void OnTimer(UINT nIDEvent);
    afx_msg BOOL OnEraseBkgnd(CDC* pDC);
    protected:
    CBitmap m_bitmap;//闪屏图片
    private:
    BITMAP m_bmpInfo;//图片信息,用与取图片大小设置窗口大小
    UINT m_Time;
    };
    // SplashWnd.cpp : 实现文件
    //#include "stdafx.h"
    #include "SplashWnd.h"
    #include "SplashWnd.h"
    #include ".\splashwnd.h"
    // CSplashWndIMPLEMENT_DYNAMIC(CSplashWnd, CWnd)
    //CSplashWnd::CSplashWnd()
    //{
    //
    //}
    CSplashWnd::CSplashWnd(UINT bmpID,UINT nTime=1000)
    {
    m_Time = nTime;               //淡入淡出效果时间
    m_bitmap.LoadBitmap(bmpID);
    m_bitmap.GetBitmap(&m_bmpInfo);
    //
    //注册WNDCLASS
    //
    CString strWndClass; strWndClass = AfxRegisterWndClass(
    NULL,
    AfxGetApp() ->LoadStandardCursor(IDC_ARROW),
    NULL,
    NULL); //
    //建立窗口
    //
    CreateEx(WS_EX_TOOLWINDOW/*不在任务栏显示*/, strWndClass, "启动中...", WS_POPUP, CW_USEDEFAULT, CW_USEDEFAULT,
    m_bmpInfo.bmWidth , m_bmpInfo.bmHeight, NULL, NULL, NULL);
    }CSplashWnd::~CSplashWnd()
    {
    }
    BEGIN_MESSAGE_MAP(CSplashWnd, CWnd)
    ON_WM_CREATE()
    ON_WM_CLOSE()
    ON_WM_TIMER()
    ON_WM_ERASEBKGND()
    END_MESSAGE_MAP()// CSplashWnd 消息处理程序
    int CSplashWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    if (CWnd::OnCreate(lpCreateStruct) == -1)
    return -1; // TODO:  在此添加您专用的创建代码
    this->CenterWindow();
    AnimateWindow(m_Time,AW_BLEND);
    SetTimer(1, 3000, NULL);
    return 0;
    }void CSplashWnd::OnClose()
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    AnimateWindow(m_Time,AW_BLEND|AW_HIDE); CWnd::OnClose();
    }void CSplashWnd::OnTimer(UINT nIDEvent)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    OnClose();
    CWnd::OnTimer(nIDEvent);
    }BOOL CSplashWnd::OnEraseBkgnd(CDC* pDC)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    //显示图片
    CBitmap* pOldBmp;
    CDC memDC;
    memDC.CreateCompatibleDC(pDC);
    pOldBmp = memDC.SelectObject(&m_bitmap);
    pDC->BitBlt(0,0,m_bmpInfo.bmWidth,m_bmpInfo.bmHeight,&memDC,0,0,SRCCOPY); return CWnd::OnEraseBkgnd(pDC);
    }