MFC软件欢迎界面(基于对话框,VS2013)

话不多说先上效果图:示例Demo下载:


Step1:首先你需要一张BMP格式的图片,这个工作可以在Photoshop中完成。

Step2:然后我们新建一个mfc工程文件(基于对话框的)


Step3:进入类向导添加类,你也可以自己命名



Step4:插入BMP图片




Step5:mySplash类头文件代码编辑mySplash.h

#pragma once
#include "afxwin.h"
class mySplash :
	public CWnd
{
	DECLARE_DYNAMIC(mySplash)
protected:
	DECLARE_MESSAGE_MAP()
public:
	CBitmap m_bitmap;
	void Create(UINT nBitmapID);
	afx_msg void OnPaint();
	afx_msg void OnTimer(UINT_PTR nIDEvent);
public:
	mySplash();
	~mySplash();
};

Step5:mySplash类资源文件代码编辑mySplash.cpp

#include "stdafx.h"
#include "mySplash.h"

IMPLEMENT_DYNAMIC(mySplash, CWnd)
mySplash::mySplash()
{
}


mySplash::~mySplash()
{
}

BEGIN_MESSAGE_MAP(mySplash, CWnd)
	ON_WM_PAINT()
	ON_WM_TIMER()
END_MESSAGE_MAP()
void mySplash::Create(UINT nBitmapID)
{
	m_bitmap.LoadBitmap(nBitmapID);
	BITMAP bitmap;
	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);
}

void mySplash::OnPaint()
{
	CPaintDC dc(this);
	BITMAP bitmap;
	m_bitmap.GetBitmap(&bitmap);
	CDC dcComp;
	dcComp.CreateCompatibleDC(&dc);
	dcComp.SelectObject(&m_bitmap);
	dc.BitBlt(0, 0, bitmap.bmWidth, bitmap.bmHeight, &dcComp, 0, 0, SRCCOPY);
}

void mySplash::OnTimer(UINT_PTR nIDEvent)
{
	DestroyWindow(); //销毁初始画面窗口
}

Step5:在主对话框DLG文件的初始化函数中调用(注意,主对话框cpp文件需要包含类的头文件)

	mySplash wndSplash;                 //创建启动窗口类的实例
	wndSplash.Create(IDB_BITMAP1);     //BMP图片的ID
	wndSplash.CenterWindow();
	wndSplash.UpdateWindow();          //send WM_PAINT
	Sleep(3000);
	wndSplash.DestroyWindow();//销毁初始画面窗口

大功告成

展开阅读全文

没有更多推荐了,返回首页