手动创建mfc工程(留存方便复制)

案例一、 

#include <afxwin.h>

class CMyWnd : public CWnd
{
	//DECLARE_DYNCREATE(CMyWnd)
public:
	CMyWnd(){}
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
};

BOOL CMyWnd::PreCreateWindow(CREATESTRUCT& cs)
{
	WNDCLASS wc;

	BOOL bRet = ::GetClassInfo(cs.hInstance, cs.lpszClass, &wc);
	if(bRet)
	{
		return TRUE;
	}

	wc.style =CS_HREDRAW | CS_VREDRAW;	
	wc.cbClsExtra = wc.cbWndExtra = 0;
	wc.hCursor = LoadCursor(NULL,IDC_ARROW);
	wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
	wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
	wc.hInstance = cs.hInstance;
	wc.lpfnWndProc = AfxWndProc;
	wc.lpszClassName = cs.lpszClass;
	wc.lpszMenuName = NULL;

	bRet = ::RegisterClass(&wc);
	if(!bRet)
	{
		return FALSE;
	}
	return TRUE;
}

class CMyApp : public CWinApp
{
public:
	virtual BOOL InitInstance()
	{
		m_pMainWnd = new CMyWnd();
		m_pMainWnd->CreateEx(0,_T("JXD"),_T("测试窗口程序"),WS_OVERLAPPEDWINDOW,
		                 CRect(0,0,800,600),nullptr,0,this);
		m_pMainWnd->ShowWindow(SW_SHOW);
                m_pMainWnd->UpdateWindow ();
		return TRUE;
	}
};

CMyApp theApp;

案例二、

.h

class CMyApp : public CWinApp
{
public:
    virtual BOOL InitInstance ();
};

class CMainWindow : public CFrameWnd
{
public:
    CMainWindow ();

protected:
    afx_msg void OnPaint ();
    DECLARE_MESSAGE_MAP ()
};

.cpp

#include <afxwin.h>
#include "cwd.h"

CMyApp myApp;

/////////////////////////////////////////////////////////////////////////
// CMyApp member functions

BOOL CMyApp::InitInstance ()
{
    m_pMainWnd = new CMainWindow;
    m_pMainWnd->ShowWindow (m_nCmdShow);
    m_pMainWnd->UpdateWindow ();
    return TRUE;
}

/////////////////////////////////////////////////////////////////////////
// CMainWindow message map and member functions

BEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd)
    ON_WM_PAINT ()
END_MESSAGE_MAP ()

CMainWindow::CMainWindow ()
{
    Create (NULL, _T ("The Test Application"));
}

void CMainWindow::OnPaint ()
{
    CPaintDC dc (this);
    
    CRect rect;
    GetClientRect (&rect);

    dc.DrawText (_T ("Test MFC"), -1, &rect,
        DT_SINGLELINE | DT_CENTER | DT_VCENTER);
}

 

posted @ 2017-12-07 20:16  jadeshu  阅读(247)  评论(0编辑  收藏  举报