本文實例講述了CWnd窗口框架,分享給大家供大家參考。具體分析如下:
.h頭文件代碼如下:
#include <afxwin.h>  
  
class CMyApp:public CWinApp  
{  
public:  
    virtual BOOL InitInstance();  
};  
  
//CMainWindow  
class CMainWindow:public CWnd  
{  
public:  
    CMainWindow();  
    ~CMainWindow();  
  
protected:  
    afx_msg void OnNcDestroy( );  
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);  
    afx_msg void OnDestroy( );  
    DECLARE_MESSAGE_MAP()  
};
.cpp源文件代碼如下:
#include "ReadBMP.h"  
#include "resource.h"  
  
CMyApp theApp;  
BOOL CMyApp::InitInstance()  
{  
    m_pMainWnd = new CMainWindow;  
    m_pMainWnd->ShowWindow(m_nCmdShow);  
    return TRUE; //必須返回TRUE,否則不會進入消息循環,界面會直接退出  
}  
  
//CMainWindow  
BEGIN_MESSAGE_MAP(CMainWindow, CWnd)  
ON_WM_CREATE()  
END_MESSAGE_MAP()  
//構造函數  
CMainWindow::CMainWindow()  
{  
    LPCTSTR lpszClassName = ::AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW, ::LoadCursorA(NULL, IDC_ARROW), (HBRUSH)(COLOR_3DFACE+1), theApp.LoadIcon(IDI_MAIN));  
    CreateEx(WS_EX_CLIENTEDGE, lpszClassName, "xxx", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL);  
}  
//析構函數  
CMainWindow::~CMainWindow()  
{  
  
}  
//消息映射函數  
int CMainWindow::OnCreate(LPCREATESTRUCT lpCreateStruct)  
{  
    //OutputDebugString("oncreate");  
    //設置菜單  
    HMENU hMenu = ::LoadMenuA(theApp.m_hInstance, (LPCSTR)IDR_MENU);  
    ::SetMenu(m_hWnd, hMenu);  
    return 0;  
}  
  
void CMainWindow::OnNcDestroy( )  
{  
    delete this;  
}  
void CMainWindow::OnDestroy()  
{  
      
}
希望本文所述對大家的C++程序設計有所幫助。