enum
?AfxSig

{
????????AfxSig_end?
=
?
0
,?????
//
?[marks?end?of?message?map]
????????AfxSig_vv,
}
;

#define
?ON_COMMAND(id,?memberFxn)?\
???
{?WM_COMMAND,?
0
,?(WORD)id,?(WORD)id,?AfxSig_vv,?(AFX_PMSG)memberFxn?}
,
??1
#define
?TRUE?1
??2
#define
?FALSE?0
??3
??4
typedef?
char
*
?LPSTR;
??5
typedef?
const
?
char
*
?LPCSTR;
??6
??7
typedef?unsigned?
long
??DWORD;
??8
typedef?
int
????????????BOOL;
??9
typedef?unsigned?
char
??BYTE;
?10
typedef?unsigned?
short
?WORD;
?11
typedef?
int
????????????INT;
?12
typedef?unsigned?
int
???UINT;
?13
typedef?
long
???????????LONG;
?14
?15
typedef?UINT???????????WPARAM;
?16
typedef?LONG???????????LPARAM;
?17
typedef?LONG???????????LRESULT;
?18
typedef?
int
????????????HWND;
?19
?20
#define
?WM_COMMAND?????0x0111??
//
?following?windows.h
?21
#define
?WM_CREATE??????0x0001
?22
#define
?WM_PAINT???????0x000F
?23
#define
?WM_NOTIFY??????0x004E
?24
?25
#define
?CObjectid??????????????0xffff
?26
#define
???CCmdTargetid?????????1
?27
#define
?????CWinThreadid???????11
?28
#define
???????CWinAppid????????111
?29
#define
?????????CMyWinAppid????1111
?30
#define
?????CWndid?????????????12
?31
#define
???????CFrameWndid??????121
?32
#define
?????????CMyFrameWndid??1211
?33
#define
???????CViewid??????????122
?34
#define
?????????CMyViewid??????1221
?35
#define
?????CDocumentid????????13
?36
#define
???????CMyDocid?????????131
?37
?38
#include?
<
iostream.h
>
?39
?40
/**/
//////////////////////////////////////////////////////////////////
//
?41
//
?Window?message?map?handling
?42
?43
struct
?AFX_MSGMAP_ENTRY;
?44
?45
struct
?AFX_MSGMAP
?46
{
?47
????????AFX_MSGMAP
*
?pBaseMessageMap;
?48
????????AFX_MSGMAP_ENTRY
*
?lpEntries;
?49
}
;
?50
?51
#define
?DECLARE_MESSAGE_MAP()?\
?52
????????
static
?AFX_MSGMAP_ENTRY?_messageEntries[];?\
?53
????????
static
?AFX_MSGMAP?messageMap;?\
?54
????????
virtual
?AFX_MSGMAP
*
?GetMessageMap()?
const
;
?55
?56
#define
?BEGIN_MESSAGE_MAP(theClass,?baseClass)?\
?57
????????AFX_MSGMAP
*
?theClass::GetMessageMap()?
const
?\
?58
????????????????
{?
return
?
&
theClass::messageMap;?}
?\
?59
????????AFX_MSGMAP?theClass::messageMap?
=
?\
?60
????????
{?
&
(baseClass::messageMap),?\
?61
????????????????(AFX_MSGMAP_ENTRY
*
)?
&
(theClass::_messageEntries)?}
;?\
?62
????????AFX_MSGMAP_ENTRY?theClass::_messageEntries[]?
=
?\
?63
????????
{
?64
?65
#define
?END_MESSAGE_MAP()?\
?66
????????
{?
0
,?
0
,?
0
,?
0
,?AfxSig_end,?(AFX_PMSG)
0
?}
?\
?67
????????}
;
?68
?69
//
?Message?map?signature?values?and?macros?in?separate?header
?70
#include?
"
afxmsg_.h
"
?71
?72
class
?CObject
?73
{
?74
public
:
?75
??CObject::CObject()??
{
?76
??????????????????????}
?77
??CObject::
~
CObject()?
{
?78
??????????????????????}
?79
}
;
?80
?81
class
?CCmdTarget?:?
public
?CObject
?82
{
?83
public
:
?84
??CCmdTarget::CCmdTarget()??
{
?85
????????????????????????????}
?86
??CCmdTarget::
~
CCmdTarget()?
{
?87
????????????????????????????}
?88
?89
??
virtual
?BOOL?OnCmdMsg(UINT?nID,?
int
?nCode);
?90
?91
??DECLARE_MESSAGE_MAP()???????
//
?base?class?-?no?{{?}}?macros
?92
}
;
?93
?94
typedef?
void
?(CCmdTarget::
*
AFX_PMSG)(
void
);
?95
?96
struct
?AFX_MSGMAP_ENTRY??
//
?MFC?4.0?format
?97
{
?98
????UINT?nMessage;?
//
?windows?message
?99
????UINT?nCode;????
//
?control?code?or?WM_NOTIFY?code
100
????UINT?nID;??????
//
?control?ID?(or?0?for?windows?messages)
101
????UINT?nLastID;??
//
?used?for?entries?specifying?a?range?of?control?id's
102
????UINT?nSig;?????
//
?signature?type?(action)?or?pointer?to?message?#
103
????AFX_PMSG?pfn;??
//
?routine?to?call?(or?special?value)
104
}
;
105
106
class
?CWinThread?:?
public
?CCmdTarget
107
{
108
public
:
109
??CWinThread::CWinThread()??
{
110
????????????????????????????}
111
??CWinThread::
~
CWinThread()?
{
112
????????????????????????????}
113
114
??
virtual
?BOOL?InitInstance()?
{
115
????????????????????????????????cout?
<<
?
"
CWinThread::InitInstance?\n
"
;
116
????????????????????????????????
return
?TRUE;
117
??????????????????????????????}
118
??
virtual
?
int
?Run()?
{
119
??????????????????????cout?
<<
?
"
CWinThread::Run?\n
"
;
120
??????????????????????
//
?AfxWndProc( );
121
??????????????????????
return
?
1
;
122
????????????????????}
123
}
;
124
125
class
?CWnd;
126
127
class
?CWinApp?:?
public
?CWinThread
128
{
129
public
:
130
??CWinApp
*
?m_pCurrentWinApp;
131
??CWnd
*
?m_pMainWnd;
132
133
public
:
134
??CWinApp::CWinApp()??
{
135
????????????????????????m_pCurrentWinApp?
=
?
this
;
136
??????????????????????}
137
??CWinApp::
~
CWinApp()?
{
138
??????????????????????}
139
140
??
virtual
?BOOL?InitApplication()?
{
141
???????????????????????????????????cout?
<<
?
"
CWinApp::InitApplication?\n
"
;
142
???????????????????????????????????
return
?TRUE;
143
?????????????????????????????????}
144
??
virtual
?BOOL?InitInstance()????
{
145
???????????????????????????????????cout?
<<
?
"
CWinApp::InitInstance?\n
"
;
146
???????????????????????????????????
return
?TRUE;
147
?????????????????????????????????}
148
??
virtual
?
int
?Run()?
{
149
??????????????????????cout?
<<
?
"
CWinApp::Run?\n
"
;
150
??????????????????????
return
?CWinThread::Run();
151
????????????????????}
152
153
??DECLARE_MESSAGE_MAP()
154
}
;
155
156
typedef?
void
?(CWnd::
*
AFX_PMSGW)(
void
);
157
????????????????
//
?like?'AFX_PMSG'?but?for?CWnd?derived?classes?only
158
159
class
?CDocument?:?
public
?CCmdTarget
160
{
161
public
:
162
??CDocument::CDocument()???
{
163
???????????????????????????}
164
??CDocument::
~
CDocument()??
{
165
???????????????????????????}
166
167
??
virtual
?BOOL?OnCmdMsg(UINT?nID,?
int
?nCode);
168
169
??DECLARE_MESSAGE_MAP()
170
}
;
171
172
class
?CWnd?:?
public
?CCmdTarget
173
{
174
public
:
175
??CWnd::CWnd()???
{
176
?????????????????}
177
??CWnd::
~
CWnd()??
{
178
?????????????????}
179
180
??
virtual
?BOOL?Create();
181
??BOOL?CreateEx();
182
??
virtual
?BOOL?PreCreateWindow();
183
??
virtual
?LRESULT?WindowProc(UINT?nMsg,?WPARAM?wParam,?LPARAM?lParam);
184
??
virtual
?LRESULT?DefWindowProc(UINT?message,?WPARAM?wParam,?LPARAM?lParam);
185
??
virtual
?BOOL?OnCommand(WPARAM?wParam,?LPARAM?lParam);
186
187
??DECLARE_MESSAGE_MAP()
188
}
;
189
190
class
?CView;
191
192
class
?CFrameWnd?:?
public
?CWnd
193
{
194
public
:
195
??CView
*
?m_pViewActive;???????
//
?current?active?view
196
197
public
:
198
??CFrameWnd::CFrameWnd()???
{
199
???????????????????????????}
200
??CFrameWnd::
~
CFrameWnd()??
{
201
???????????????????????????}
202
??BOOL?Create();
203
??
virtual
?BOOL?PreCreateWindow();
204
??CView
*
?GetActiveView()?
const
;
205
??
virtual
?BOOL?OnCommand(WPARAM?wParam,?LPARAM?lParam);
206
??
virtual
?BOOL?OnCmdMsg(UINT?nID,?
int
?nCode);
207
208
??DECLARE_MESSAGE_MAP()
209
210
??friend?CView;
211
}
;
212
213
class
?CView?:?
public
?CWnd
214
{
215
public
:
216
??CDocument
*
?m_pDocument;
217
218
public
:
219
??CView::CView()???
{
220
???????????????????}
221
??CView::
~
CView()??
{
222
???????????????????}
223
224
??
virtual
?BOOL?OnCmdMsg(UINT?nID,?
int
?nCode);
225
226
??DECLARE_MESSAGE_MAP()
227
228
??friend?CFrameWnd;
229
}
;
230
231
//
?global?function
232
CWinApp
*
?AfxGetApp();
233
LRESULT?AfxWndProc(HWND?hWnd,?UINT?nMsg,?WPARAM?wParam,?LPARAM?lParam,
234
???????????????????CWnd
*
?pWnd);?
//
?last?param.?pWnd?is?added?by?JJHOU.
235
LRESULT?AfxCallWndProc(CWnd
*
?pWnd,?HWND?hWnd,?UINT?nMsg,?WPARAM?wParam,
236
???????????????????????LPARAM?lParam);
237
?1
#include?
<
iostream.h
>
?2
#include?
"
mfc.h
"
?3
?4
class
?CMyWinApp?:?
public
?CWinApp
?5
{
?6
public
:
?7
??CMyWinApp::CMyWinApp()???
{
?8
???????????????????????????}
?9
??CMyWinApp::
~
CMyWinApp()??
{
10
???????????????????????????}
11
??
virtual
?BOOL?InitInstance();
12
??DECLARE_MESSAGE_MAP()
13
}
;
14
15
class
?CMyFrameWnd?:?
public
?CFrameWnd
16
{
17
public
:
18
??CMyFrameWnd();
19
??
~
CMyFrameWnd()??
{
20
??????????????????}
21
??DECLARE_MESSAGE_MAP()
22
}
;
23
24
class
?CMyDoc?:?
public
?CDocument
25
{
26
public
:
27
??CMyDoc::CMyDoc()??
{
28
????????????????????}
29
??CMyDoc::
~
CMyDoc()?
{
30
????????????????????}
31
??DECLARE_MESSAGE_MAP()
32
}
;
33
34
class
?CMyView?:?
public
?CView
35
{
36
public
:
37
??CMyView::CMyView()???
{
38
???????????????????????}
39
??CMyView::
~
CMyView()??
{
40
???????????????????????}
41
??DECLARE_MESSAGE_MAP()
42
}
;
43
??1
#include?
"
my.h
"
??
//
?贛?mfc.h?碞?extern?CMyWinApp?┮
??2
??3
extern
?CMyWinApp?theApp;
??4
extern
?
void
?printlpEntries(AFX_MSGMAP_ENTRY
*
?lpEntry);
??5
??6
BOOL?CCmdTarget::OnCmdMsg(UINT?nID,?
int
?nCode)
??7
{
??8
????cout?
<<
?
"
CCmdTarget::OnCmdMsg()
"
?
<<
?endl;
??9
????
//
?Now?look?through?message?map?to?see?if?it?applies?to?us
?10
????AFX_MSGMAP
*
?pMessageMap;
?11
????AFX_MSGMAP_ENTRY
*
?lpEntry;
?12
????
for
?(pMessageMap?
=
?GetMessageMap();?pMessageMap?
!=
?NULL;
?13
?????????pMessageMap?
=
?pMessageMap
->
pBaseMessageMap)
?14
????
{
?15
????????????lpEntry?
=
?pMessageMap
->
lpEntries;
?16
????????????printlpEntries(lpEntry);
?17
????}
?18
?19
????
return
?FALSE;???
//
?not?handled
?20
}
?21
?22
BOOL?CWnd::Create()
?23
{
?24
????cout?
<<
?
"
CWnd::Create?\n
"
;
?25
????
return
?TRUE;
?26
}
?27
?28
BOOL?CWnd::CreateEx()
?29
{
?30
????cout?
<<
?
"
CWnd::CreateEx?\n
"
;
?31
????PreCreateWindow();
?32
????
return
?TRUE;
?33
}
?34
?35
BOOL?CWnd::PreCreateWindow()
?36
{
?37
??cout?
<<
?
"
CWnd::PreCreateWindow?\n
"
;
?38
??
return
?TRUE;
?39
}
?40
?41
LRESULT?CWnd::WindowProc(UINT?nMsg,?WPARAM?wParam,?LPARAM?lParam)
?42
{
?43
????AFX_MSGMAP
*
?pMessageMap;
?44
????AFX_MSGMAP_ENTRY
*
?lpEntry;
?45
?46
????cout?
<<
?
"
CWnd::WindowProc()
"
?
<<
?endl;
?47
????
if
?(nMsg?
==
?WM_COMMAND)?
//
?special?case?for?commands
?48
????
{
?49
????????
if
?(OnCommand(wParam,?lParam))
?50
????????????
return
?
1L
;?
//
?command?handled
?51
????????
else
?52
????????????
return
?(LRESULT)DefWindowProc(nMsg,?wParam,?lParam);
?53
????}
?54
?55
????pMessageMap?
=
?GetMessageMap();
?56
?57
????
for
?(;?pMessageMap?
!=
?NULL;
?58
?????????pMessageMap?
=
?pMessageMap
->
pBaseMessageMap)
?59
????
{
?60
????????????lpEntry?
=
?pMessageMap
->
lpEntries;
?61
????????????printlpEntries(lpEntry);
?62
????}
?63
????
return
?
0
;??
//
?J.J.Hou:?if?find,?should?call?lpEntry->pfn,
?64
???????????????
//
?otherwise?should?call?DefWindowProc.
?65
???????????????
//
?for?simplization?we?just?return?0.
?66
}
?67
?68
LRESULT?CWnd::DefWindowProc(UINT?message,?WPARAM?wParam,?LPARAM?lParam)
?69
{
?70
????cout?
<<
?
"
CWnd::DefWindowProc()
"
?
<<
?endl;
?71
????
return
?TRUE;
?72
}
?73
?74
BOOL?CWnd::OnCommand(WPARAM?wParam,?LPARAM?lParam)
?75
{
?76
????cout?
<<
?
"
CWnd::OnCommand()
"
?
<<
?endl;
?77
????
//
?
?78
????
return
?OnCmdMsg(
0
,?
0
);
?79
}
?80
?81
BOOL?CFrameWnd::OnCommand(WPARAM?wParam,?LPARAM?lParam)
?82
{
?83
????cout?
<<
?
"
CFrameWnd::OnCommand()
"
?
<<
?endl;
?84
????
//
?
?85
????
//
?route?as?normal?command
?86
????
return
?CWnd::OnCommand(wParam,?lParam);
?87
}
?88
?89
BOOL?CFrameWnd::Create()
?90
{
?91
????cout?
<<
?
"
CFrameWnd::Create?\n
"
;
?92
????CreateEx();
?93
????
return
?TRUE;
?94
}
?95
?96
BOOL?CFrameWnd::PreCreateWindow()
?97
{
?98
????cout?
<<
?
"
CFrameWnd::PreCreateWindow?\n
"
;
?99
????
return
?TRUE;
100
}
101
102
CView
*
?CFrameWnd::GetActiveView()?
const
103
{
104
????cout?
<<
?
"
CFrameWnd::GetActiveView()
"
?
<<
?endl;
105
????
return
?m_pViewActive;
106
}
107
108
BOOL?CFrameWnd::OnCmdMsg(UINT?nID,?
int
?nCode)
109
{
110
????cout?
<<
?
"
CFrameWnd::OnCmdMsg()
"
?
<<
?endl;
111
????
//
?pump?through?current?view?FIRST
112
????CView
*
?pView?
=
?GetActiveView();
113
????
if
?(pView
->
OnCmdMsg(nID,?nCode))
114
????????????
return
?TRUE;
115
116
????
//
?then?pump?through?frame
117
????
if
?(CWnd::OnCmdMsg(nID,?nCode))
118
????????????
return
?TRUE;
119
120
????
//
?last?but?not?least,?pump?through?app
121
????CWinApp
*
?pApp?
=
?AfxGetApp();
122
????
if
?(pApp
->
OnCmdMsg(nID,?nCode))
123
????????????
return
?TRUE;
124
125
????
return
?FALSE;
126
}
127
128
BOOL?CDocument::OnCmdMsg(UINT?nID,?
int
?nCode)
129
{
130
????cout?
<<
?
"
CDocument::OnCmdMsg()
"
?
<<
?endl;
131
????
if
?(CCmdTarget::OnCmdMsg(nID,?nCode))
132
????????
return
?TRUE;
133
134
????
return
?FALSE;
135
}
136
137
BOOL?CView::OnCmdMsg(UINT?nID,?
int
?nCode)
138
{
139
????cout?
<<
?
"
CView::OnCmdMsg()
"
?
<<
?endl;
140
????
if
?(CWnd::OnCmdMsg(nID,?nCode))
141
????????
return
?TRUE;
142
143
????BOOL?bHandled?
=
?FALSE;
144
????bHandled?
=
?m_pDocument
->
OnCmdMsg(nID,?nCode);
145
????
return
?bHandled;
146
}
147
148
AFX_MSGMAP
*
?CCmdTarget::GetMessageMap()?
const
??
//
?JJHou:?in?MFC?40?cmdtarg.cpp
149
{
150
????
return
?
&
CCmdTarget::messageMap;
151
}
152
153
AFX_MSGMAP?CCmdTarget::messageMap?
=
???
//
?JJHou:?in?in?MFC?40?cmdtarg.cpp
154
{
155
????NULL,
156
????
&
CCmdTarget::_messageEntries[
0
]
157
}
;
158
159
AFX_MSGMAP_ENTRY?CCmdTarget::_messageEntries[]?
=
?
//
?JJHou:?in?in?MFC?40?cmdtarg.cpp
160
{
161
????
{?
0
,?
0
,?CCmdTargetid,?
0
,?AfxSig_end,?
0
?}
??
//
?nothing?here
162
}
;
163
164
BEGIN_MESSAGE_MAP(CWnd,?CCmdTarget)
165
ON_COMMAND(CWndid,?
0
)
166
END_MESSAGE_MAP()
167
168
BEGIN_MESSAGE_MAP(CFrameWnd,?CWnd)
169
ON_COMMAND(CFrameWndid,?
0
)
170
END_MESSAGE_MAP()
171
172
BEGIN_MESSAGE_MAP(CDocument,?CCmdTarget)
173
ON_COMMAND(CDocumentid,?
0
)
174
END_MESSAGE_MAP()
175
176
BEGIN_MESSAGE_MAP(CView,?CWnd)
177
ON_COMMAND(CViewid,?
0
)
178
END_MESSAGE_MAP()
179
180
BEGIN_MESSAGE_MAP(CWinApp,?CCmdTarget)
181
ON_COMMAND(CWinAppid,?
0
)
182
END_MESSAGE_MAP()
183
184
CWinApp
*
?AfxGetApp()
185
{
186
??
return
?theApp.m_pCurrentWinApp;
187
}
188
189
LRESULT?AfxWndProc(HWND?hWnd,?UINT?nMsg,?WPARAM?wParam,?LPARAM?lParam,
190
???????????????????CWnd?
*
pWnd)??
//
?last?param.?pWnd?is?added?by?JJHou.
191
{
192
??cout?
<<
?
"
AfxWndProc()
"
?
<<
?endl;
193
??
return
?AfxCallWndProc(pWnd,?hWnd,?nMsg,?wParam,?lParam);
194
}
195
196
LRESULT?AfxCallWndProc(CWnd
*
?pWnd,?HWND?hWnd,?UINT?nMsg,
197
???????????????????????WPARAM?wParam,?LPARAM?lParam)
198
{
199
??cout?
<<
?
"
AfxCallWndProc()
"
?
<<
?endl;
200
??LRESULT?lResult?
=
?pWnd
->
WindowProc(nMsg,?wParam,?lParam);
201
??
return
?lResult;
202
}
203
?1
#include?
"
my.h
"
?2
?3
CMyWinApp?theApp;??
//
?global?object
?4
?5
BOOL?CMyWinApp::InitInstance()
?6
{
?7
????cout?
<<
?
"
CMyWinApp::InitInstance?\n
"
;
?8
????m_pMainWnd?
=
?
new
?CMyFrameWnd;
?9
????
return
?TRUE;
10
}
11
12
CMyFrameWnd::CMyFrameWnd()
13
{
14
????Create();
15
}
16
17
BEGIN_MESSAGE_MAP(CMyWinApp,?CWinApp)
18
ON_COMMAND(CMyWinAppid,?
0
)
19
END_MESSAGE_MAP()
20
21
BEGIN_MESSAGE_MAP(CMyFrameWnd,?CFrameWnd)
22
ON_COMMAND(CMyFrameWndid,?
0
)
23
END_MESSAGE_MAP()
24
25
BEGIN_MESSAGE_MAP(CMyDoc,?CDocument)
26
ON_COMMAND(CMyDocid,?
0
)
27
END_MESSAGE_MAP()
28
29
BEGIN_MESSAGE_MAP(CMyView,?CView)
30
ON_COMMAND(CMyViewid,?
0
)
31
END_MESSAGE_MAP()
32
33
void
??printlpEntries(AFX_MSGMAP_ENTRY
*
?lpEntry)
34
{
35
struct
?
{
36
??
int
?classid;
37
??
char
*
?classname;
38
}
?classinfo[]?
=
?
{
39
????????????????????CCmdTargetid?,??
"
CCmdTarget???
"
,
40
????????????????????CWinThreadid?,??
"
CWinThread???
"
,
41
????????????????????CWinAppid????,??
"
CWinApp??????
"
,
42
????????????????????CMyWinAppid??,??
"
CMyWinApp????
"
,
43
????????????????????CWndid???????,??
"
CWnd?????????
"
,
44
????????????????????CFrameWndid??,??
"
CFrameWnd????
"
,
45
????????????????????CMyFrameWndid,??
"
CMyFrameWnd??
"
,
46
????????????????????CViewid??????,??
"
CView????????
"
,
47
????????????????????CMyViewid????,??
"
CMyView??????
"
,
48
????????????????????CDocumentid??,??
"
CDocument????
"
,
49
????????????????????CMyDocid?????,??
"
CMyDoc???????
"
,
50
????????????????????
0
????????????,??
"
?????????????
"
51
????????????????}
;
52
53
????
for
?(
int
?i
=
0
;?classinfo[i].classid?
!=
?
0
;?i
++
)
54
????
{
55
????????
if
?(classinfo[i].classid?
==
?lpEntry
->
nID)
56
????????
{
57
????????????cout?
<<
?lpEntry
->
nID?
<<
?
"
????
"
;
58
????????????cout?
<<
?classinfo[i].classname?
<<
?endl;
59
????????????
break
;
60
????????}
61
????}
62
}
63
//
------------------------------------------------------------------
64
//
?main
65
//
------------------------------------------------------------------
66
void
?main()
67
{
68
????CWinApp
*
?pApp?
=
?AfxGetApp();
69
70
????pApp
->
InitApplication();
71
????pApp
->
InitInstance();
72
????pApp
->
Run();
73
74
????CMyDoc
*
?pMyDoc?
=
?
new
?CMyDoc;
75
????CMyView
*
?pMyView?
=
?
new
?CMyView;
76
????CFrameWnd
*
?pMyFrame?
=
?(CFrameWnd
*
)pApp
->
m_pMainWnd;
77
????pMyFrame
->
m_pViewActive?
=
?pMyView;
78
????pMyView
->
m_pDocument?
=
?pMyDoc;
79
80
????
//
?test?Message?Routing
81
????cout?
<<
?endl?
<<
?
"
pMyFrame?receive?WM_CREATE,?
"
;
82
????cout?
<<
?
"
routing?path?and?call?stack:
"
?
<<
?endl;
83
????AfxWndProc(
0
,?WM_CREATE,?
0
,?
0
,?pMyFrame);
84
85
????cout?
<<
?endl?
<<
?
"
pMyView?receive?WM_PAINT,?
"
;
86
????cout?
<<
?
"
routing?path?and?call?stack:
"
?
<<
?endl;
87
????AfxWndProc(
0
,?WM_PAINT,?
0
,?
0
,?pMyView);
88
89
????cout?
<<
?endl?
<<
?
"
pMyView?receive?WM_COMMAND,?
"
;
90
????cout?
<<
?
"
routing?path?and?call?stack:
"
?
<<
?endl;
91
????AfxWndProc(
0
,?WM_COMMAND,?
0
,?
0
,?pMyView);
92
93
????cout?
<<
?endl?
<<
?
"
pMyFrame?receive?WM_COMMAND,?
"
;
94
????cout?
<<
?
"
routing?path?and?call?stack:
"
?
<<
?endl;
95
????AfxWndProc(
0
,?WM_COMMAND,?
0
,?
0
,?pMyFrame);
96
}
97
|
|
|
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|
導航
統計
- 隨筆: 115
- 文章: 1
- 評論: 86
- 引用: 0
常用鏈接
留言簿(5)
隨筆檔案(115)
網址
搜索
積分與排名
最新評論

閱讀排行榜
評論排行榜
|
|