友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
深入浅出MFC第2版(PDF格式)-第32部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
过在这里我不作比对,只是把AFX_MSGMAP_ENTRY 中的类别识别代码印出来(就像上
一节的Frame7 程序一样),以表示「到此一游」:
193
…………………………………………………………Page 256……………………………………………………………
第篇 勿在浮砂築高台
LRESULT CWnd::WindowProc(UINT nMsg; WPARAM wParam; LPARAM lParam)
{
AFX_MSGMAP* pMessageMap;
AFX_MSGMAP_ENTRY* lpEntry;
if (nMsg == WM_MAND) // special case for mands
{
if (Onmand (wParam; lParam))
return 1L; // mand handled
else
return (LRESULT)DefWindowProc (nMsg; wParam; lParam);
}
pMessageMap = GetMessageMap();
for (; pMessageMap != NULL;
pMessageMap = pMessageMap…》pBaseMessageMap)
{
lpEntry = pMessageMap…》lpEntries;
printlpEntries(lpEntry);
}
return 0; // J。J。Hou: if find; should call lpEntry…》pfn;
// otherwise should call DefWindowProc。
// for simplification; we just return 0。
}
如果消息是WM_MAND,CWnd::WindowProc 调用 Onmand 。好,注意了,
这又是一个CWnd 的虚拟函数:
1。 如果this 指向CMyFrameWnd 对象,那么调用的是CFrameWnd::Onmand 。
2。 如果this 指向CMyView 对象,那么调用的是CView::Onmand 。而因为CView
并没有改写Onmand,所以调用的其实是CWnd::Onmand 。
这次可就没有殊途同归了。
我们以第一种情况为例,再往下看:
194
…………………………………………………………Page 257……………………………………………………………
第3章 MFC 六大關鍵技術之模擬
BOOL CFrameWnd::Onmand(WPARAM wParam; LPARAM lParam)
{
cout
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!