📄 mfc.cpp
字号:
#include "my.h" //原该嵌入mfc.h就好,但为了CMyWinApp的定义,所以....
extern CMyWinApp theApp; //external global object
BOOL CWnd::Create()
{
cout << "CWnd::Create \n";
return TRUE;
}
BOOL CWnd::CreateEx()
{
cout << "CWnd::CreateEx \n";
PreCreateWindow(); //这是一个虚函数,CWnd中有定义,CFrameWnd也改写了它。根据调用对象决定
return TRUE;
}
BOOL CWnd::PreCreateWindow()
{
cout << "CWnd::PreCreateWindow \n";
return TRUE;
}
BOOL CFrameWnd::Create()
{
cout << "CFrameWnd::Create \n";
CreateEx();//CreateEx是虚函数,但CMyFrameWnd未改写它,所以引发CFrameWnd::CreateEx
return TRUE;
}
BOOL CFrameWnd::PreCreateWindow()
{
cout << "CFrameWnd::PreCreateWindow \n";
return TRUE;
}
CWinApp *AfxGetApp()
{
return theApp.m_pCurrentWinApp;
}
AFX_MSGMAP* CCmdTarget::GetMessageMap() const // JJHOU: in MFC 40 cmdtarg.cpp
{
return &CCmdTarget::messageMap;
}
AFX_MSGMAP CCmdTarget::messageMap = // JJHOU: in MFC 40 cmdtarg.cpp
{
NULL,
&CCmdTarget::_messageEntries[0]
};
AFX_MSGMAP_ENTRY CCmdTarget::_messageEntries[] = // JJHOU: in in MFC 40 cmdtarg.cpp
{
// { 0, 0, 0, 0, AfxSig_end, 0 } // nothing here
{ 0, 0, CCmdTargetid, 0, AfxSig_end, 0 }
};
BEGIN_MESSAGE_MAP(CWnd, CCmdTarget) //将CCmdTarget的消息网作为CWnd的基网
//等同于
//struct AFX_MSGMAP
//{
// AFX_MSGMAP *pBaseMessageMap;
// AFX_MSGMAP_ENTRY *lpEntries;
//};
//AFX_MSGMAP* CWnd::GetMessageMap() const \
// { return &CWnd::messageMap; } \
//AFX_MSGMAP CWnd::messageMap = \
//{ &(CCmdTarget::messageMap), \
// (AFX_MSGMAP_ENTRY*) &(CWnd::_messageEntries) }; \
//AFX_MSGMAP_ENTRY CWnd::_messageEntries[] = \
//{
//#define END_MESSAGE_MAP() \
// { 0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 } \
//};
ON_COMMAND(CWndid, 0) //将要加入的消息
//等同于
//{ WM_COMMAND, CN_COMMAND, (WORD)CWndid, (WORD)CWndid, AfxSigCmd_v, \
// static_cast<AFX_PMSG> (0) },
END_MESSAGE_MAP()
//等同于
//#define END_MESSAGE_MAP() \
// { 0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 }
////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CFrameWnd, CWnd) ////将CWnd的消息网作为CFrameWnd的基网
//等同于
//struct AFX_MSGMAP
//{
// AFX_MSGMAP *pBaseMessageMap;
// AFX_MSGMAP_ENTRY *lpEntries;
//};
//AFX_MSGMAP* CFrameWnd::GetMessageMap() const \
// { return &CFrameWnd::messageMap; } \
//AFX_MSGMAP CFrameWnd::messageMap = \
//{ &(CWnd::messageMap), \
// (AFX_MSGMAP_ENTRY*) &(CFrameWnd::_messageEntries) }; \
//AFX_MSGMAP_ENTRY CFrameWnd::_messageEntries[] = \
//{
//#define END_MESSAGE_MAP() \
// { 0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 } \
//};
ON_COMMAND(CFrameWndid, 0)
//等同于
//{ WM_COMMAND, CN_COMMAND, (WORD)CFrameWndid, (WORD)CFrameWndid, AfxSigCmd_v, \
// static_cast<AFX_PMSG> (0) },
END_MESSAGE_MAP()
//等同于
//#define END_MESSAGE_MAP() \
// { 0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 }
////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CDocument, CCmdTarget) //将CCmdTarget的消息网作为CDocument的基网
//等同于
//struct AFX_MSGMAP
//{
// AFX_MSGMAP *pBaseMessageMap;
// AFX_MSGMAP_ENTRY *lpEntries;
//};
//AFX_MSGMAP* CDocument::GetMessageMap() const \
// { return &CDocument::messageMap; } \
//AFX_MSGMAP CDocument::messageMap = \
//{ &(CCmdTarget::messageMap), \
// (AFX_MSGMAP_ENTRY*) &(CDocument::_messageEntries) }; \
//AFX_MSGMAP_ENTRY CDocument::_messageEntries[] = \
//{
//#define END_MESSAGE_MAP() \
// { 0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 } \
//};
ON_COMMAND(CDocumentid, 0)
//等同于
//{ WM_COMMAND, CN_COMMAND, (WORD)CDocumentid, (WORD)CDocumentid, AfxSigCmd_v, \
// static_cast<AFX_PMSG> (0) },
END_MESSAGE_MAP()
//等同于
//#define END_MESSAGE_MAP() \
// { 0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 }
///////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CView, CWnd) //将CWnd的消息网作为CView的基网
//等同于
//struct AFX_MSGMAP
//{
// AFX_MSGMAP *pBaseMessageMap;
// AFX_MSGMAP_ENTRY *lpEntries;
//};
//AFX_MSGMAP* CView::GetMessageMap() const \
// { return &CView::messageMap; } \
//AFX_MSGMAP CView::messageMap = \
//{ &(CWnd::messageMap), \
// (AFX_MSGMAP_ENTRY*) &(CView::_messageEntries) }; \
//AFX_MSGMAP_ENTRY CView::_messageEntries[] = \
//{
//#define END_MESSAGE_MAP() \
// { 0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 } \
//};
ON_COMMAND(CViewid, 0)
//等同于
//{ WM_COMMAND, CN_COMMAND, (WORD)CViewid, (WORD)CViewid, AfxSigCmd_v, \
// static_cast<AFX_PMSG> (0) },
END_MESSAGE_MAP()
//等同于
//#define END_MESSAGE_MAP() \
// { 0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 }
////////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CWinApp, CCmdTarget) //将CCmdTarget的消息网作为CWinApp的基网
//等同于
//struct AFX_MSGMAP
//{
// AFX_MSGMAP *pBaseMessageMap;
// AFX_MSGMAP_ENTRY *lpEntries;
//};
//AFX_MSGMAP* CWinApp::GetMessageMap() const \
// { return &CWinApp::messageMap; } \
//AFX_MSGMAP CWinApp::messageMap = \
//{ &(CCmdTarget::messageMap), \
// (AFX_MSGMAP_ENTRY*) &(CWinApp::_messageEntries) }; \
//AFX_MSGMAP_ENTRY CWinApp::_messageEntries[] = \
//{
//#define END_MESSAGE_MAP() \
// { 0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 } \
//};
ON_COMMAND(CWinAppid, 0)
//等同于
//{ WM_COMMAND, CN_COMMAND, (WORD)CWinAppid, (WORD)CWinAppid, AfxSigCmd_v, \
// static_cast<AFX_PMSG> (0) },
END_MESSAGE_MAP()
//等同于
//#define END_MESSAGE_MAP() \
// { 0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -