国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

區分與理解消息反射機制

區分與理解消息反射機制

更新時間:2022-05-14 文章作者:未知 信息來源:網絡 閱讀次數:

鄭力群

前言:

  我曾寫過一篇文章對通知消息WM_NOTIFY進行分析,消息反射是MFC中對通知消息的處理方式,兩者之間關系十分緊密,因此,我寫了這篇文章,希望能夠描繪出通知消息的完整印象。

消息反射的基礎知識

1、消息反射解釋:
  父窗口將控制子窗口發給它的通知消息,首先反射回子窗口進行處理(即給控制子窗口一個機會,讓控制子窗口處理此消息),這樣通知消息就有機會能被子窗口自身進行處理。

2、MFC中引入消息反射的原因:
  在Windows的消息處理中,控制子窗口的發給其父窗口的通知消息只能由其父窗口進行處理,這使得控制子窗口的自身能動性大大降低(你想,它連改變自己的背景色,處理一個自身滾動問題都要其父窗口來完成),為了解決這個問題,在MFC中引入了反射消息“Reflect Message”的概念,進行消息反射,可以使得控制子窗口能夠自行處理與自身相關的一些消息,增強了封裝性,從而提高了控制子窗口的可重用性。

消息反射的處理流程(不考慮OLE控制)

一、消息反射處理流程圖:
  1、父窗口收到控制子窗口發來的通知消息后,調用它的虛函數CWnd::OnNotify.
CWnd::OnNotify()主體部分:
{
if (ReflectLastMsg(hWndCtrl, pResult)) //此時,hWndCtrl,為發送窗口,即子窗口的窗口句柄
return TRUE; // 子窗口已處理了此消息
AFX_NOTIFY notify;
notify.pResult = pResult;
notify.pNMHDR = pNMHDR;
return OnCmdMsg(nID, MAKELONG(nCode, WM_NOTIFY), ¬ify, NULL);
}

  分析:首先,調用ReflectLastMsg(hCtrlChildWnd,...)給子窗口一個自身處理的機會,將消息反射給子窗口處理,函數返回TRUE,表明子窗口處理了此消息。反之,表示子窗口未處理此消息,此時,調用OnCmdMsg(...)由父窗口進行通常的處理。

  2、ReflectLastMsg中:
  主要是調用發送窗口的SendChildNotifyLastMsg(...)。

  3、SendChildNotifyLastMsg 中:
  調用發送窗口的虛函數OnChildNotify函數,進行處理。 如果沒有處理,則調用ReflectChildNotify(...)函數進行標準的反射消息的消息映射處理。


二、消息處理

方式1:
  由上述處理流程可以看出來,子窗口要想自身處理此消息,重載子控件窗口的OnChildNotify虛擬函數應該是很容易想到的方式。

  注意:MFC中對各個子控件窗口一般都已經重載了OnChildNotify函數,它對應調用類的虛函數進行處理,所以,你重載對應的虛函數即可,如下例:
BOOL CStatusBarCtrl::OnChildNotify(UINT message, WPARAM wParam, LPARAM lParam,LRESULT* pResult)
{
if (message != WM_DRAWITEM) //對應不同的控制,會有不同的有特殊處理要求的消息。
return CWnd::OnChildNotify(message, wParam, lParam, pResult);
...
...
DrawItem((LPDRAWITEMSTRUCT)lParam);
return TRUE;
}
virtual void DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct );
void CStatusBarCtrl::DrawItem(LPDRAWITEMSTRUCT)
{
ASSERT(FALSE); // must override for self draw status bars
}

  你重載CSTatusBarCtrl類的DrawItem虛擬函數,即可實現對反射消息WM_DRAWITEM的處理。

方式2:
  從方式1可以看出,如果你不在被重載的OnChildNotify中對消息進行處理,函數會調用CWnd::OnChildNotify,它調用ReflectChildNotify函數進行標準的處理。
1、增加反射消息的映射入口。
2、增加對應的消息處理函數。
注意:可以使用MFC的ClassWizard作上述動作,在ClassWizard中,可處理的反射消息以一個"="號以示區別。返回值為TRUE,表示控件窗口已處理此反射消息,為FALSE,表示控件子窗口未處理此反射消息。

結語:

  消息反射不是很難的概念。它僅出現在MFC中;它的用意是方便控制子窗口的重用;對某些通知消息你可以重載對應的虛函數(WM_DRAWITEM...)進行處理;對其它你可以使用標準的消息反射映射進行處理。限于篇幅,一些細節問題,請閱讀MFC中對應的源代碼。  

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        亚洲欧美经典视频| 欧美色图在线观看| 日本久久一区二区| 中文字幕亚洲不卡| 国产.精品.日韩.另类.中文.在线.播放| 精品成人在线观看| 国产一区二区91| 国产精品成人一区二区三区夜夜夜| 国产精品综合一区二区三区| 久久久久久久久一| 91性感美女视频| 日韩中文字幕av电影| 欧美一区二区三级| 国产在线视频一区二区| 欧美国产精品劲爆| 欧美私模裸体表演在线观看| 亚洲成人动漫在线免费观看| 91麻豆精品91久久久久同性| 国产麻豆精品95视频| 国产精品乱人伦中文| 欧美日韩在线播| 美女网站色91| 亚洲免费观看高清完整版在线| 日本精品裸体写真集在线观看| 日韩va欧美va亚洲va久久| 日韩久久久久久| 不卡一区二区在线| 日本不卡视频在线| 亚洲欧美国产高清| 日韩精品自拍偷拍| 色婷婷国产精品| 久久精品二区亚洲w码| 亚洲欧洲精品天堂一级| 69av一区二区三区| 99国产精品99久久久久久| 免费观看成人鲁鲁鲁鲁鲁视频| 中文字幕中文字幕在线一区| 91麻豆精品国产91久久久久久 | 欧美精品一卡二卡| 成人午夜视频福利| 美女网站在线免费欧美精品| 亚洲欧美电影一区二区| 日韩一区二区在线播放| 成人短视频下载| 精品夜夜嗨av一区二区三区| 一区二区三区在线播| 国产午夜精品一区二区| 欧美一级黄色片| 欧美午夜精品一区二区三区| 北条麻妃一区二区三区| 激情丁香综合五月| 久久99精品久久久久久动态图| 亚洲国产日产av| 亚洲一区免费视频| 中文字幕一区二区三区在线不卡| 精品福利视频一区二区三区| 制服丝袜亚洲精品中文字幕| 欧美午夜电影在线播放| 色呦呦日韩精品| 色综合久久九月婷婷色综合| 国产成人在线免费观看| 国产精品自拍毛片| 国产乱码精品一区二区三区av| 久久 天天综合| 国产露脸91国语对白| 国产一区不卡在线| 国产a久久麻豆| 99久久久精品| 欧美亚洲动漫另类| 欧美精品一区二区在线播放| 日韩欧美一级特黄在线播放| 日韩一区二区三区四区 | 国产成人自拍高清视频在线免费播放| 美女诱惑一区二区| 九色综合狠狠综合久久| 黑人巨大精品欧美一区| 国产精品自产自拍| 成人18视频在线播放| 成人精品免费网站| 欧洲国内综合视频| 欧美老女人在线| 欧美一级日韩免费不卡| 国产亚洲欧美激情| 亚洲天堂福利av| 亚洲国产精品一区二区www | 麻豆成人在线观看| 国产在线精品免费av| 国产高清在线观看免费不卡| 国产91对白在线观看九色| 成人黄色综合网站| 日本韩国精品一区二区在线观看| 欧美日韩国产高清一区二区| 日韩免费观看2025年上映的电影| 久久精品日产第一区二区三区高清版 | 秋霞电影网一区二区| 日本成人在线看| 成人综合在线网站| 欧美精品18+| 国产精品婷婷午夜在线观看| 亚洲成在人线在线播放| 国产精品一卡二卡在线观看| 欧美综合天天夜夜久久| www国产精品av| 一区二区三区视频在线观看| 韩国三级电影一区二区| 欧美性色欧美a在线播放| 国产拍欧美日韩视频二区| 午夜精品久久久久久久| 岛国精品在线观看| 26uuu精品一区二区在线观看| 亚洲激情图片qvod| 国产91在线观看丝袜| 欧美欧美欧美欧美| 1000精品久久久久久久久| 欧美aa在线视频| 色婷婷国产精品久久包臀 | 欧美激情一区在线| 国产欧美精品一区二区色综合 | 不卡电影一区二区三区| 91精品综合久久久久久| 中文久久乱码一区二区| 青草av.久久免费一区| 91香蕉视频污在线| 久久久久久久久久久久久久久99 | 免费观看在线综合| 在线欧美日韩国产| 国产精品日韩成人| 国产精品主播直播| 日韩精品一区二区三区视频在线观看| 欧洲av一区二区嗯嗯嗯啊| 欧美精品一区二区三| 日韩精品乱码免费| 欧美三级中文字| 亚洲精品国产a久久久久久| 国产成人自拍网| 国产日韩精品一区二区三区| 精品一区二区三区影院在线午夜| 91精品国产手机| 日本不卡中文字幕| 制服.丝袜.亚洲.中文.综合| 丝瓜av网站精品一区二区| 精品污污网站免费看| 一区二区高清在线| 欧美在线视频日韩| 人人超碰91尤物精品国产| 4hu四虎永久在线影院成人| 日韩黄色免费网站| 欧美一区二区日韩| 国产一区二区三区四区五区美女 | 欧美精品一区二区三区蜜桃视频 | 亚洲综合一二区| 欧美亚洲国产怡红院影院| 亚洲福利一区二区三区| 日韩一区二区免费在线电影| 精品无码三级在线观看视频| 国产亚洲短视频| 91美女片黄在线观看91美女| 洋洋成人永久网站入口| 欧美精品 国产精品| 黄色成人免费在线| 亚洲精品久久久蜜桃| 欧美日韩久久久| 开心九九激情九九欧美日韩精美视频电影| 日韩欧美中文一区二区| 国产一区二区0| 一区二区免费在线| 日韩欧美国产精品| 不卡一二三区首页| 日韩**一区毛片| 国产精品久久久一区麻豆最新章节| 91影视在线播放| 美女视频黄久久| 亚洲国产岛国毛片在线| 欧美午夜在线一二页| 国内精品久久久久影院一蜜桃| 欧美国产乱子伦| 欧美一区二区性放荡片| 成人av动漫网站| 午夜精品一区二区三区三上悠亚| 精品国产一区二区精华 | 国内欧美视频一区二区| 亚洲人成在线播放网站岛国| 欧美一区午夜视频在线观看| 成人av网在线| 久久国产精品露脸对白| 亚洲一区二区精品3399| 欧美韩日一区二区三区四区| 欧美久久久久中文字幕| 成人精品国产一区二区4080| 青青草国产成人99久久| 亚洲男女一区二区三区| 久久精品人人做人人爽人人| 日韩一区二区三区免费观看| 99热99精品| 国产成人精品网址| 久久se这里有精品| 偷拍自拍另类欧美| 天天影视网天天综合色在线播放| 玉足女爽爽91| 成人免费在线视频|