项目-添加类-c++类,类名CSplashWnd
其他默认。把SplashWnd.h的代码如下:
#pragma once
// CSplashWnd
class CSplashWnd : public CWnd
{
DECLARE_DYNAMIC(CSplashWnd)
private:
CDC mMemDC
BITMAP bmBitmap
CBitmap m_Bitmap
CBitmap *Old_Bitmap
public:
void CreateSplash()
public:
CSplashWnd()
virtual ~CSplashWnd()
protected:
afx_msg void OnPaint()
DECLARE_MESSAGE_MAP()
}
类的cpp代码:
// SplasWnd.cpp : 实现文件
//
#include "stdafx.h"
#include "resource.h"
#include "SplashWnd.h"
// CSplashWnd
IMPLEMENT_DYNAMIC(CSplashWnd, CWnd)
CSplashWnd::CSplashWnd()
{
m_Bitmap.LoadBitmap(MAKEINTRESOURCE(IDB_BITMAP1))//Load Bitmap
m_Bitmap.GetBitmap(&bmBitmap) //Get Bitmap Info
}
CSplashWnd::~CSplashWnd()
{
}
BEGIN_MESSAGE_MAP(CSplashWnd, CWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()
// CSplashWnd 消息处理程序
void CSplashWnd::CreateSplash()
{
//Create Splash Window
CWnd::CreateEx(0,
AfxRegisterWndClass(
0,
AfxGetApp()->LoadStandardCursor(IDC_UPARROW)),
NULL,
//"SplashWindow Sample",
WS_POPUP,
0,
0,
bmBitmap.bmWidth, //Bitmap Width = Splash Window Width
bmBitmap.bmHeight, //Bitmap Height = Splash Window Height
NULL,
NULL,
NULL)
}
void CSplashWnd::OnPaint()
{
CPaintDC dc(this)
CBrush brush
brush.CreateSolidBrush(RGB(64,64,255))
dc.SelectObject(&brush)
dc.Rectangle(0,0,bmBitmap.bmWidth,bmBitmap.bmHeight)
mMemDC.CreateCompatibleDC(NULL)//Create Memory DC
Old_Bitmap = mMemDC.SelectObject(&m_Bitmap)//Select DC
int num = bmBitmap.bmWidth/40
dc.StretchBlt(0,0,bmBitmap.bmWidth,bmBitmap.bmHeight,&mMemDC,0,0,bmBitmap.bmWidth,bmBitmap.bmHeight,SRCCOPY)
mMemDC.SelectObject(Old_Bitmap)//Select Bitmap
}
//IDB_BITMAP1是添加的位图资源。
然后在MainFrm.cpp中OnCreate函数开始处
m_pSplashWindow = new CSplashWnd()
// CRect rect(10,10,500,500)
// m_pSplashWindow->Create(NULL,NULL,0,rect,NULL,0)
m_pSplashWindow->CreateSplash()
m_pSplashWindow->CenterWindow()
m_pSplashWindow->ShowWindow(SW_SHOW)
m_pSplashWindow->UpdateWindow()
// Sleep(2000)
m_pSplashWindow->DestroyWindow()
//m_pSplashWindow 要在头文件中声明,并要在析构函数中delete。不过这破程序没必要,不知道自己当时为什么要这样写,动态内存使用麻烦容易出错,直接在这个函数中构造对象就可以了,不用什么动态申请,也就不用在头文件中声明什么指针了。自己懒得改,你觉得有必要就改下吧
VS2005中添加不了编辑框控件怎么回事?答案是:可能是由于版本兼容问题导致的。建议您将VS2005升级到最新的版本,或者尝试使用其它版本的Visual Studio来开发您的应用程序,以便获得更多的功能与支持。看了一下,似乎syncfusion没有提供自动注册工具箱的功能,那只能手动添加了:1 在工具箱中单击右键,添加选项卡,或者使用已有的选项卡
2 在要添加到的选项卡中单击右键,选择“选择项……”,此时VS扫描系统中的.net组件和com组件,可能需要等待较长时间
3 等待VSd出“选择工具箱项”对话框,在.net framework组件选项卡中查找syncfusion的库,结合利用筛选器,选中需要的组件,点击确定
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)