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();//销毁初始画面窗口

完成

时间: 2024-07-29 19:58:19

MFC,splash启动画面(改)的相关文章

MFC添加启动画面与CImage结合版

最近做一个启动画面,发现Splash只能加载bitmap,发现bitmap图片效果不太好,所以找了下在C++中有什么可以加载PNG或者JPG等类型的图片,在网上找半天后,发现CImage这个类相当好用,而且还可以和CBitmap相互转换,这样我只要修改一小段代码,就可以实现用位图以外的图片来做启动画面了,在找图片的时候也不这么麻烦,因为CImage基本支持多种图片格式,很好用.详细可以自行百度哦.下面附上代码. 1.在工程中添加C++类,CWzdSplash.基类是CWnd 添加代码: #ifn

VS2010 MFC实现启动画面

1.创建一个SDI工程(或者其他工程都可以). 2.创建一个位图资源命名为IDB_BITMAP1. 3.利用类向导添加一个类CMySplashCtrl(名字可以自己随便取). 4.在MySplashCtrl.h文件中添加如下代码: 5.编写ShowSplashWindow函数 6.分别编写处理WM_CREATE.WM_PAINT.WM_TIMER消息的相应函数 7.在CMainFrame.cpp的OnCreate中添加如下语句: 到此结束.

mfc启动画面

目标 用一张位图来作为启动画面,在进入程序时显示. 策略 在应用程序类的I n i t I n s t a n c e ()函数中,在最早时刻创建启动窗口.启动窗口用一个位图类显示在普通窗口中. 步骤 1.        创建一个启动窗口类 1)      用ClassWizard创建一个从一般CWnd类(当然也可以是CFrameWnd类)派生的普通窗口类.如图所示: 2)      添加Create()成员函数到该类,在该函数中装入启动窗口中显示的位图,以及在屏幕中央创建该窗口. void C

纯C++打造的Splash Screen类(打造专业的启动画面)

Introduction 每一个应用程序可能都需要一个"about box"和程序启动时一个"splash screen"(启动画面),大多数开发者都使用自带的""about dialog"".我创建了一个类CSplashScreen,都可以处理这两者,使开发变的容易,有趣!从小的对话框组件程序到需要加在几分复杂程序,我都会使用这个类. 这个类有两个文件组成,SplashScreen.h 和 SplashScreen.cpp.

Android程序启动画面 Splash

很多应用都会有一个启动界面.欢迎画面慢慢隐现,然后慢慢消隐. 我的方式是使用两个Activity,程序启动时候load第一张Activity,然后由tick触发N秒钟后startActivity另外一张Activity. splash.java package com.yuyidong.second; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import andro

MFC之窗口修改工具栏编程状态栏编程程序启动画面

1窗口外观的修改 (1)修改在CMainFrame::preCreateWindow(CREATESTRUCT& cs) 修改标题:cs.style&=FWS_ADDTOTITLE; cs.lpszNamw="new title"; (2)窗口创建之后修改外观 在CMainframe::Create()中调用SetWindowLong(HWND hwnd,.....)根据参数修改指定的项 所有从CWnd派生的类都是窗口类在这些窗口类中都有一个公有的成员变量保存了和着个窗

MFC之窗体改动工具栏编程状态栏编程程序启动画面

1窗体外观的改动 (1)改动在CMainFrame::preCreateWindow(CREATESTRUCT& cs) 改动标题:cs.style&=FWS_ADDTOTITLE; cs.lpszNamw="new title"; (2)窗体创建之后改动外观 在CMainframe::Create()中调用SetWindowLong(HWND hwnd,.....)依据參数改动指定的项 全部从CWnd派生的类都是窗体类在这些窗体类中都有一个公有的成员变量保存了和着个窗

C#: 启动画面设计

Windows Form经常会在启动主界面的时候预先有启动画面,这也是因为用户体验的需要,用户知道已经启动application,而不是在load resource的时候等待.因此这里不能用单线程的思路,单单只是设计一个界面而已,而需要在splash画面的时候同时Load resource.那么这个技术有两个线程,一个是splash画面,二是load resource.搜了一些资料,下面进行一些总结: 1 using System; 2 using System.Collections.Gene

【VC编程技巧】窗体?3.5对单文档或者多文档程序制作启动画面

(一)概要: 文章描述了怎样通过Visual C++ 2012或者Visual C++ .NET,为单文档或者多文档程序制作启动画面.在Microsoft Visual Studio 6.0中对于单文档程序(SDI)我们可以很方便利用微软提供的组件Visual C++ Component (Splash Screen).因为在Microsoft Visual Studio 6.0以后的版本或者Visual C++ .NET没有提供这个组件,我们可以通过自定义对话框来实现Splash Screen