代码如下:
#include <afxwin.h>
class CMyWnd :public CWnd
{
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnPaint();
public:
BOOL PreCreateWindow(CREATESTRUCT& cs);
virtual void PostNcDestroy();
};
BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()
void CMyWnd::OnPaint()
{
}
void CMyWnd::PostNcDestroy()
{
delete this;
}
class CMyApp :public CWinApp
{
virtual BOOL InitInstance();
};
BOOL CMyWnd::PreCreateWindow(CREATESTRUCT& cs)
{
WNDCLASS wcex = { 0 };
wcex.lpfnWndProc = ::DefWindowProc;
//wcex.lpfnWndProc = ::WndProc;//自定义win32窗口函数,使用时要把Mfc消息机制注释掉
wcex.hInstance = AfxGetInstanceHandle();
wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wcex.lpszClassName = TEXT("CMYWND");
AfxRegisterClass(&wcex);
cs.lpszClass = wcex.lpszClassName;
//cs.lpszClass = AfxRegisterWndClass(0x000B, LoadCursor(nullptr, IDC_ARROW), (HBRUSH)(COLOR_WINDOW + 1));
return TRUE;
}
BOOL CMyApp::InitInstance()
{
CMyWnd *pMyWnd = new CMyWnd();
pMyWnd->CreateEx(NULL, NULL, TEXT("我的应用"), WS_OVERLAPPEDWINDOW | WS_VISIBLE, 100, 100, 500, 300, NULL, 0, NULL);
m_pMainWnd = pMyWnd;
pMyWnd->ShowWindow(SW_SHOW);
pMyWnd->UpdateData();
return TRUE;
}
CMyApp theApp;