给程序添加一个启动界面

来源:互联网 发布:壳牌经销商网络大学 编辑:程序博客网 时间:2024/06/06 03:29

测试程序为一个对话框应用程序,主要分为以下几步:

1、首先添加一个子对话框(Dialog)用来作为程序启动时的显示界面。设置ID = IDD_DISPLAY,设置对话框属性 Border = None无边框,并为对话框关联一个类:CDisplayDlg。

2、为程序添加一个Bitmap资源,用来作为程序启动时显示界面上的图像。

3、在主对话框的OnInitDialog()函数中,以模态对话框的方式创建子对话框:

CDisplayDlg DisplayDlg;DisplayDlg.DoModal();

4、为CDisplayDlg类添加WM_TIMER定时器消息的响应函数,在响应函数中调用EndDialog(IDOK)销毁对话框,并且在初始化函数OnInitDialog()开启定时器,然后为WM_ERASEBKGND消息添加响应函数,将图片绘制到子对话框中。代码实现如下:

#include "stdafx.h"#include "ManualRenameTool.h"#include "DisplayDlg.h"#include "afxdialogex.h"// CDisplayDlg 对话框IMPLEMENT_DYNAMIC(CDisplayDlg, CDialog)CDisplayDlg::CDisplayDlg(CWnd* pParent /*=NULL*/): CDialog(CDisplayDlg::IDD, pParent){}CDisplayDlg::~CDisplayDlg(){}void CDisplayDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CDisplayDlg, CDialog)ON_WM_TIMER()ON_WM_ERASEBKGND()END_MESSAGE_MAP()// CDisplayDlg 消息处理程序void CDisplayDlg::OnTimer(UINT_PTR nIDEvent){if (nIDEvent==1){KillTimer(1);EndDialog(IDOK);}CDialog::OnTimer(nIDEvent);}BOOL CDisplayDlg::OnInitDialog(){CDialog::OnInitDialog();SetTimer(1,4000,NULL);return TRUE;  // return TRUE unless you set the focus to a control}BOOL CDisplayDlg::OnEraseBkgnd(CDC* pDC){CBitmap bitmap;  bitmap.LoadBitmap(IDB_JTV);  CDC CompatibleDC;  CompatibleDC.CreateCompatibleDC(pDC);  CompatibleDC.SelectObject(&bitmap);  CRect rect;  GetClientRect(&rect);  BITMAP bmp;  bitmap.GetBitmap(&bmp);  pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&CompatibleDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);return TRUE;return CDialog::OnEraseBkgnd(pDC);}



原创粉丝点击