按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
#0075 {
#0076 DECLARE_DYNAMIC(CWinThread)
#0077 public:
#0078 CWinThread::CWinThread() {
#0079 }
#0080 CWinThread::~CWinThread() {
#0081 }
#0082
#0083 virtual BOOL InitInstance() {
#0084 return TRUE;
#0085 }
#0086 virtual int Run() {
#0087 return 1;
#0088 }
#0089 };
#0090
#0091 class CWnd;
#0092
#0093 class CWinApp : public CWinThread
#0094 {
#0095 DECLARE_DYNAMIC(CWinApp)
134
…………………………………………………………Page 197……………………………………………………………
第3章 MFC 六大關鍵技術之模擬
#0096 public:
#0097 CWinApp* m_pCurrentWinApp;
#0098 CWnd* m_pMainWnd;
#0099
#0100 public:
#0101 CWinApp::CWinApp() {
#0102 m_pCurrentWinApp = this;
#0103 }
#0104 CWinApp::~CWinApp() {
#0105 }
#0106
#0107 virtual BOOL InitApplication() {
#0108 return TRUE;
#0109 }
#0110 virtual BOOL InitInstance() {
#0111 return TRUE;
#0112 }
#0113 virtual int Run() {
#0114 return CWinThread::Run();
#0115 }
#0116 };
#0117
#0118 class CDocument : public CCmdTarget
#0119 {
#0120 DECLARE_DYNAMIC(CDocument)
#0121 public:
#0122 CDocument::CDocument() {
#0123 }
#0124 CDocument::~CDocument() {
#0125 }
#0126 };
#0127
#0128 class CWnd : public CCmdTarget
#0129 {
#0130 DECLARE_DYNAMIC(CWnd)
#0131 public:
#0132 CWnd::CWnd() {
#0133 }
#0134 CWnd::~CWnd() {
#0135 }
#0136
#0137 virtual BOOL Create();
#0138 BOOL CreateEx();
#0139 virtual BOOL PreCreateWindow();
#0140 };
#0141
135
…………………………………………………………Page 198……………………………………………………………
第篇 勿在浮砂築高台
#0142 class CFrameWnd : public CWnd
#0143 {
#0144 DECLARE_DYNAMIC(CFrameWnd)
#0145 public:
#0146 CFrameWnd::CFrameWnd() {
#0147 }
#0148 CFrameWnd::~CFrameWnd() {
#0149 }
#0150 BOOL Create();
#0151 virtual BOOL PreCreateWindow();
#0152 };
#0153
#0154 class CView : public CWnd
#0155 {
#0156 DECLARE_DYNAMIC(CView)
#0157 public:
#0158 CView::CView() {
#0159 }
#0160 CView::~CView() {
#0161 }
#0162 };
#0163
#0164
#0165 // global function
#0166 CWinApp* AfxGetApp();
MFC。CPP
#0001 #include 〃my。h〃 //
原该包含mfc。h 就好,但为了CMyWinApp 的定义,所以。。。
#0002
#0003 extern CMyWinApp theApp;
#0004
#0005 static char szCObject'' = 〃CObject〃;
#0006 struct CRuntimeClass CObject::classCObject =
#0007 { szCObject; sizeof(CObject); 0xffff; NULL; NULL };
#0008 static AFX_CLASSINIT _init_CObject(&CObject::classCObject);
#0009
#0010 CRuntimeClass* CRuntimeClass::pFirstClass = NULL;
#0011
#0012 AFX_CLASSINIT::AFX_CLASSINIT(CRuntimeClass* pNewClass)
#0013 {
#0014 pNewClass…》m_pNextClass = CRuntimeClass::pFirstClass;
#0015 CRuntimeClass::pFirstClass = pNewClass;
#0016 }
#0017
#0018 CRuntimeClass* CObject::GetRuntimeClass() const
136
…………………………………………………………Page 199……………………………………………………………
第3章 MFC 六大關鍵技術之模擬
#0019 {
#0020 return &CObject::classCObject;
#0021 }
#0022
#0023 BOOL CWnd::Create()
#0024 {
#0025 return TRUE;
#0026 }
#0027
#0028 BOOL CWnd::CreateEx()
#0029 {
#0030 PreCreateWindow();
#0031 return TRUE;
#0032 }
#0033
#0034 BOOL CWnd::PreCreateWindow()
#0035 {
#0036 return TRUE;
#0037 }
#0038
#0039 BOOL CFrameWnd::Create()
#0040 {
#0041 CreateEx();
#0042 return TRUE;
#0043 }
#0044
#0045 BOOL CFrameWnd::PreCreateWindow()
#0046 {
#0047 return TRUE;
#0048 }
#0049
#0050