亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

MFC消息分類與消息隊(duì)列

2019-11-10 20:10:16
字體:
供稿:網(wǎng)友
消息分類與消息隊(duì)列

Windows中,消息使用統(tǒng)一的結(jié)構(gòu)體(MSG)來存放信息,其中message表明消息的具體的類型,

而wParam,lParam是其最靈活的兩個(gè)變量,為不同的消息類型時(shí),存放數(shù)據(jù)的含義也不一樣。

time表示產(chǎn)生消息的時(shí)間,pt表示產(chǎn)生消息時(shí)鼠標(biāo)的位置。

按照類型,Windows將消息分為:

(0) 消息ID范圍

系統(tǒng)定義消息ID范圍:[0x0000, 0x03ff]用戶自定義的消息ID范圍: WM_USER: 0x0400-0x7FFF (例:WM_USER+10) WM_APP(winver> 4.0):0x8000-0xBFFF (例:WM_APP+4) RegisterWindowMessage:0xC000-0xFFFF【用來和其他應(yīng)用程序通信,為了ID的唯一性,使用::RegisterWindowMessage來得到該范圍的消息ID 】

(1) 窗口消息:即與窗口的內(nèi)部運(yùn)作有關(guān)的消息,如創(chuàng)建窗口,繪制窗口,銷毀窗口等。

     可以是一般的窗口,也可以是MainFrame,Dialog,控件等。 

     如:WM_CREATE, WM_PAINT, WM_MOUSEMOVE, WM_CTLCOLOR, WM_HSCROLL等

(2) 當(dāng)用戶從菜單選中一個(gè)命令項(xiàng)目、按下一個(gè)快捷鍵或者點(diǎn)擊工具欄上的一個(gè)按鈕,都將發(fā)送WM_COMMAND命令消息。

     LOWord(wParam)表示菜單項(xiàng),工具欄按鈕或控件的ID;如果是控件, HIWORD(wParam)表示控件消息類型。

     #define LOWORD(l) ((WORD)(l))

     #define HIWORD(l) ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))

(3) 隨著控件的種類越來越多,越來越復(fù)雜(如列表控件、樹控件等),僅僅將wParam,lParam將視為一個(gè)32位無符號(hào)整數(shù),已經(jīng)裝不下太多信息了。

    為了給父窗口發(fā)送更多的信息,微軟定義了一個(gè)新的WM_NOTIFY消息來擴(kuò)展WM_COMMAND消息。

    WM_NOTIFY消息仍然使用MSG消息結(jié)構(gòu),只是此時(shí)wParam為控件ID,lParam為一個(gè)NMHDR指針,

    不同的控件可以按照規(guī)則對NMHDR進(jìn)行擴(kuò)充,因此WM_NOTIFY消息傳送的信息量可以相當(dāng)?shù)拇蟆?/p>

注:Window 9x 版及以后的新控件通告消息不再通過WM_COMMAND 傳送,而是通過WM_NOTIFY 傳送,      但是老控件的通告消息, 比如CBN_SELCHANGE 還是通過WM_COMMAND 消息發(fā)送。

(4) windwos也允許程序員定義自己的消息,使用SendMessage或PostMessage來發(fā)送消息。

windows消息還可以分為:

(1) 隊(duì)列消息(Queued Messages) 消息會(huì)先保存在消息隊(duì)列中,消息循環(huán)會(huì)從此隊(duì)列中取出消息并分發(fā)到各窗口處理 如:WM_PAINT,WM_TIMER,WM_CREATE,WM_QUIT,以及鼠標(biāo),鍵盤消息等。其中,WM_PAINT,WM_TIMER只有在隊(duì)列中沒有其他消息的時(shí)候才會(huì)被處理,WM_PAINT消息還會(huì)被合并以提高效率。其他所有消息以先進(jìn)先出(FIFO)的方式被處理。

(2) 非隊(duì)列消息(NonQueued Messages) 消息會(huì)繞過系統(tǒng)消息隊(duì)列和線程消息隊(duì)列,直接發(fā)送到窗口過程進(jìn)行處理 如:WM_ACTIVATE, WM_SETFOCUS, WM_SETCURSOR,WM_WINDOWPOSCHANGED

Windows系統(tǒng)的整個(gè)消息系統(tǒng)分為3個(gè)層級:

    ① Windows內(nèi)核的系統(tǒng)消息隊(duì)列

    ② App的UI線程消息隊(duì)列

    ③ 處理消息的窗體對象

Windows內(nèi)核維護(hù)著一個(gè)全局的系統(tǒng)消息隊(duì)列;按照線程的不同,系統(tǒng)消息隊(duì)列中的消息會(huì)分發(fā)到應(yīng)用程序的UI線程的消息隊(duì)列中;

應(yīng)用程序的每一個(gè)UI線程都有自己的消息循環(huán),會(huì)不停地從自己的消息隊(duì)列取出消息,并發(fā)送給Windows窗體對象;

每一個(gè)窗體對象都使用窗體過程函數(shù)(WindowPRoc)來處理接收到的各種消息。

復(fù)制代碼復(fù)制代碼
 1 LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) 2 { 3     PAINTSTRUCT ps; 4     HDC hdc; 5  6     switch (message) 7     { 8     case WM_COMMAND: 9         break;10     case WM_PAINT:11         hdc = BeginPaint(hWnd, &ps);12         // TODO: 在此添加任意繪圖代碼...13         EndPaint(hWnd, &ps);14         break;15     case WM_DESTROY:16         PostQuitMessage(0);17         break;18     default:19         return DefWindowProc(hWnd, message, wParam, lParam);20     }21     return 0;22 }復(fù)制代碼復(fù)制代碼

需要的話,在WindowProc中,可以用::GetMessageTime獲取當(dāng)前消息產(chǎn)生的時(shí)間,用::GetMessagePos獲取當(dāng)前消息產(chǎn)生時(shí)鼠標(biāo)光標(biāo)所在的位置。

(1) 各個(gè)窗口消息由各個(gè)窗體(或控件)自身的WindowProc(虛函數(shù))接收并處理。

(2) WM_COMMAND命令消息統(tǒng)一由當(dāng)前活動(dòng)主窗口的WindowProc接收,經(jīng)過繞行后,可被其他的CCmdTarget對象處理。

(3) WM_COMMAND控件通知統(tǒng)一由子窗口(控件)的父窗口的WindowProc接收并處理,也可以進(jìn)行繞行被其他的CCmdTarget對象處理。

     (例如:CFormView具備接受WM_COMMAND控件通知的條件,又具備把WM_COMMAND消息派發(fā)給關(guān)聯(lián)文檔對象處理的能力,

         所以給CFormView的WM_COMMAND控件通知是可以讓文檔對象處理的。)

     另外,WM_COMMAND控制通知會(huì)先調(diào)用ReflectLastMsg反射通知子窗口(控件),如果子窗口(控件)處理了該消息并返回TRUE,則消息會(huì)停止分發(fā);

     否則,會(huì)繼續(xù)調(diào)用OnCmdMsg進(jìn)行命令發(fā)送(如同WM_COMMAND命令消息一樣)。

注:WM_COMMAND命令消息與WM_COMMAND控件通知的相似之處:WM_COMMAND命令消息和WM_COMMAND控制通知都是由WindowProc給OnCommand處理,OnCommand通過wParam和lParam參數(shù)區(qū)分是命令消息或通知消息,然后送給OnCmdMsg處理。事實(shí)上,BN_CLICKED控件通知消息的處理和WM_COMMAND命令消息的處理完全一樣。因?yàn)樵撓⒌耐ㄖa是0,ON_BN_CLICKED(id,memberfunction)和ON_COMMAND(id,memberfunction)是等同的。

(4)WM_NOTIFY消息只是對WM_COMMAND控件通知進(jìn)行了擴(kuò)展,與WM_COMMAND控件通知具有相同的特點(diǎn)。

SendMessage與PostMessage

PostMessage 把消息投遞到消息隊(duì)列后,立即返回; SendMessage把消息直接送到窗口過程處理,處理完才返回。

GetMessage與PeekMessage

GetMessage 有消息且該消息不為WM_QUIT,返回TRUE?! ?           有消息且該消息為WM_QUIT,返回FALSE。                  沒有消息時(shí),掛起該UI線程,控制權(quán)交還給系統(tǒng)。PeekMessage 有消息返回TRUE,如果沒有消息返回FALSE;不會(huì)阻塞。                   是否從消息隊(duì)列中刪除此消息(PM_REMOVE),由函數(shù)參數(shù)來指定。

要想在沒有消息時(shí)做一些工作,就必須使用PeekMessage來抓取消息,以便在沒有消息時(shí),能在OnIdle中執(zhí)行空閑操作(如下):

復(fù)制代碼復(fù)制代碼
 1 while (TRUE)  2 { 3     if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)  4     { 5         if (msg.message == WM_QUIT) 6             break; 7         TranslateMessage(&msg); 8         DispatchMessage(&msg); 9     }10     else 11     {12         OnIdle();13     }14 }復(fù)制代碼復(fù)制代碼

例如:MFC使用OnIdle函數(shù)來清理一些臨時(shí)對象及未使用的動(dòng)態(tài)鏈接庫。

只有在OnIdle返回之后程序才能繼續(xù)處理用戶的輸入,因此不應(yīng)在OnIdle進(jìn)行較長的任務(wù)。

MFC消息處理

在CWnd中,MFC使用OnWndMsg來分別處理各類消息:

如果是WM_COMMAND消息,交給OnCommand處理;然后返回。

如果是WM_NOTIFY消息,交給OnNotify處理;然后返回。

如果是WM_ACTIVATE消息,先交給_AfxHandleActivate處理,再繼續(xù)下面的處理。

如果是WM_SETCURSOR消息,先交給_AfxHandleSetCursor處理,然后返回。

如果是其他的窗口消息(包括WM_ACTIVATE消息),則

  首先在消息緩沖池(一個(gè)hash表,用于加快消息處理函數(shù)的查找)進(jìn)行消息匹配,    若匹配成功,則調(diào)用相應(yīng)的消息處理函數(shù);    若不成功,則在消息目標(biāo)的消息映射數(shù)組中進(jìn)行查找匹配,看它是否能處理當(dāng)前消息。  如果消息目標(biāo)處理了該消息,則會(huì)匹配到消息處理函數(shù),調(diào)用它進(jìn)行處理;

否則,該消息沒有被應(yīng)用程序處理,OnWndMsg返回FALSE。

MFC消息映射

消息映射實(shí)際是MFC內(nèi)建的一個(gè)消息分派機(jī)制。

把MFC中的宏進(jìn)行展開(如下),可以得到消息映射表整個(gè)全貌。

注:GetMessageMap為虛函數(shù)。     {0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0}:對象消息映射表的結(jié)束標(biāo)識(shí)

窗口消息只能由CWnd對象來處理,采用向基類直線上朔的方式,來查找對應(yīng)的消息響應(yīng)函數(shù)進(jìn)行處理。

一旦找到消息響應(yīng)函數(shù)(若有返回值且為TRUE),就停止上朔。因此,我們經(jīng)常會(huì)看到這樣的代碼:

增加一個(gè)消息處理函數(shù)來寫我們的邏輯時(shí),MFC ClassWizard會(huì)在該函數(shù)之前或之后顯示調(diào)用其基類對應(yīng)的函數(shù),保證基類中邏輯被執(zhí)行。

命令消息可由CCmdTarget對象接收并處理(OnCmdMsg為虛函數(shù)),除了向基類直線上朔方式外,還有命令繞行機(jī)制(要防止形成圈,死循環(huán))。

在某種程度上,控制通知消息由窗口對象處理是一種習(xí)慣和約定。然而,控件通知消息也是可以有CCmdTarget對象接收并處理,并進(jìn)行命令繞行的。

下圖為MFC經(jīng)典單文檔視圖框架的命令消息繞行路線:

函數(shù)調(diào)用過程如下(如果沒有任何對象處理該條WM_COMMAND消息,最后會(huì)被::DefWindowProc處理)。

非模態(tài)對話框的消息處理

1 static CAboutDlg aboutDlg;2 aboutDlg.Create(IDD_ABOUTBOX, this);3 aboutDlg.ShowWindow(SW_SHOW);

應(yīng)用程序只有一個(gè)消息循環(huán)。

對于窗口消息,非模態(tài)對話框(及其子控件)與父窗口(及其子控件)都是用自身的WindowProc函數(shù)接收并處理,互不干擾。

對于命令消息,由當(dāng)前活動(dòng)主窗口的WindowProc接收(例如:當(dāng)前活動(dòng)主窗口為非模態(tài)對話框,則命令消息會(huì)被非模態(tài)對話框接收)。

可以在當(dāng)前活動(dòng)主窗口的OnCmdMsg中做命令繞行,使得其他的CCmdTarget對象也可以處理命令消息。

對于控件通知,由其父窗口的WindowProc接收并處理,一般不進(jìn)行命令繞行被其他的CCmdTarget對象處理。

模態(tài)對話框的消息處理

1 CAboutDlg aboutDlg;2 aboutDlg.DoModal();

(1) 模態(tài)對話框彈出來后,首先會(huì)讓父窗口失效,使其不能接受用戶的輸入(鍵盤鼠標(biāo)消息)。

1 EnableWindow(hwndParent, FALSE) ;

(2) 父窗口消息循環(huán)被阻塞(會(huì)卡在DoModal處,等待返回),由模態(tài)對話框的消息循環(huán)來接管(因此整個(gè)程序不會(huì)卡?。?。

    接管后,模態(tài)對話框的消息循環(huán)仍然會(huì)將屬于父窗口及其子控件的窗口消息(不包括鍵盤鼠標(biāo)相關(guān)的窗口消息)發(fā)送給它們各自的WindowProc窗口函數(shù),進(jìn)行響應(yīng)處理。

(3) 模態(tài)對話框銷毀時(shí)(點(diǎn)擊IDOK或IDCANCEL),父窗口消息循環(huán)重新激活,繼續(xù)DoModal后的邏輯。

    激活后,父窗口有可以重新接受用戶的輸入(鍵盤鼠標(biāo)消息)。

1 EnableWindow(hwndParent, TRUE) ;

從上面的過程中,我們可以得到如下結(jié)論:

對于窗口消息,模態(tài)對話框主窗口(及其子控件)與父窗口(及其子控件)都是用自身的WindowProc函數(shù)接收并處理,互不干擾。

只是父窗口(及其子控件)無法接受到鍵盤鼠標(biāo)消息相關(guān)的窗口消息。

對于命令消息,由模態(tài)對話框主窗口的WindowProc接收??梢栽谀B(tài)對話框主窗口的OnCmdMsg中做命令繞行,使得其他的CCmdTarget對象也可以處理命令消息。

對于控件通知,由其父窗口的WindowProc接收并處理,一般不進(jìn)行命令繞行被其他的CCmdTarget對象處理。

參考

《深入淺出MFC》- 侯捷

《MFC教程》- 消息映射的實(shí)現(xiàn)

http://blog.csdn.net/kongfuxionghao/article/details/35882533


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
成人一区二区视频| 午夜不卡视频| 色内内免费视频播放| 日韩一区二区三区在线| 亚洲区自拍偷拍| 国产精品一二三区在线| 久久99精品一区二区三区| 91国内精品久久久久| 亚洲精品一区二区三区蜜桃| 天天撸夜夜操| 岛国片免费看| 亚洲欧美日韩综合aⅴ视频| 日本激情视频在线播放| eeuss影院www免费看| 在线观看免费国产小视频| 三级精品视频| 欧美先锋影音| 欧美日韩蜜桃| 亚洲无亚洲人成网站77777| 一区二区三区加勒比av| 国产肉丝袜一区二区| 久久性爱视频网站| 免费激情视频在线观看| 日韩日本欧美亚洲| 欧美韩国日本| 亚洲综合av一区二区三区| 欧美一区二区三区免费大片| 欧美电影免费网站| 色dvdxxx| 日韩三级精品| 无码人妻精品一区二区50| 婷婷综合久久一区二区三区| 久久久久久久97| 涩涩日韩在线| 四虎1515hh.com| 欧美性受xxx黑人xyx性爽| 91亚洲精华国产精华| 日韩经典第一页| 日本三级日本三级日本三级极| a级黄色一级片| 91久久在线观看| 欧美亚洲综合网| 91蝌蚪porny成人天涯| 天堂精品中文字幕在线| 日韩一区二区欧美| 成av人免费青青久| 色爱综合网欧美| 国产在线精品一区二区中文| 成人国产精品一区二区免费麻豆| 欧美日韩美女一区二区| 国产一区二区免费电影| 一区二区国产视频| 在线看片福利| 日本高清久久久| 妖精视频在线观看| 国内免费精品永久在线视频| 最新国产の精品合集bt伙计| 国产中文精品久高清在线不| 中文字幕视频一区二区在线有码| 亚洲精品视频在线观看视频| 国内精品国产成人国产三级| 日本一区精品久久久久影院| 青青操在线观看| 国产一区不卡精品| 国产成a人亚洲精v品在线观看| av在线免费播放网站| 国产午夜精品一区二区| 亚洲网址你懂得| 精品视频一区二区三区| 欧美一级淫片007| 日韩有码第一页| 亚洲自拍偷拍欧美| 日本特级黄色片| 久久国产精品色av免费看| 自拍亚洲色图| 中文字幕一区二区三区四区在线视频| 一本之道久久| 97se亚洲综合| 亚洲香蕉成视频在线观看| 日本精品一区二区三区在线| 91aaa精品| 亚洲视频日韩| 日本三级视频在线播放| 麻豆精品国产91久久久久久| 丰满少妇又爽又紧又丰满69| 777精品伊人久久久久大香线蕉| 免费看日本毛片| 成人性生生活性生交12| 成人小视频免费看| 亚洲成人免费av| 污污的视频在线免费观看| 偷窥自拍亚洲色图| 夜夜嗨av一区二区三区四区| 色先锋资源网| 在线观看国产精品91| 91国产视频在线播放| 欧美一区亚洲一区| 视频午夜在线| 色8久久人人97超碰香蕉987| 国产真实老熟女无套内射| 污影院在线观看| 亚洲天堂久久久久| 久久精品久久久久久| 欧美片一区二区三区| 极品一区美女高清| 日本dvd播放| 欧美一区二区免费观在线| 男人天堂网站| 亚洲欧美一区二区不卡| 国产91色综合久久免费分享| 99re这里都是精品| 国产精品一区二区小说| 天堂av中文字幕| 亚洲精品成人自拍| 日皮视频在线免费观看| 大胆欧美人体视频| 97在线免费公开视频| av免费在线一区二区三区| 污视频网站免费| 在线观看精品| 亚洲性av网站| 国产在线视频精品一区| 成在在线免费视频| 亚洲伊人久久综合| 插菊花综合1| 国产后入清纯学生妹| 欧美成人h版在线观看| 国产精品videossex国产高清| 国产精品538一区二区在线| 国产高清在线一区| 亚洲成av人**亚洲成av**| 亚洲黄色小视频在线观看| 精品调教chinesegay| aaaaa级片| 午夜视频在线免费观看| 中文字幕黄色大片| 日本动漫理论片在线观看网站| 99精品在免费线中文字幕网站一区| 中文字幕avav| 91精品在线国产| 国产精品久久亚洲不卡| 一二三四视频免费观看在线看| 色偷偷男人天堂| 国产精品福利一区| 欲求不满中文字幕| 国产成人一区二区三区免费看| 波多野结衣在线网址| 中文字幕av久久爽av| 成人国产精品一区二区| 国产精品涩涩涩视频网站| 蜜臀久久99精品久久久久久宅男| 亚洲熟女乱综合一区二区三区| 99r国产精品| 日韩高清不卡一区二区| 国产精品日韩欧美一区二区| 四虎影视最新网站入口在线观看| 涩多多在线观看| 国内精品国产成人国产三级粉色| 91看片淫黄大片一级在线观看| 香蕉精品视频在线观看| 亚洲综合久久久久| 一本色道久久综合亚洲精品不卡| 亚洲欧美日韩一区二区三区在线观看| 中文天堂在线一区| 国产一区二区小视频| 884aa四虎免费影库4h| 亚洲免费在线看| 国产精品久久久国产盗摄| 亚洲女人久久久| 亚洲综合不卡| 四虎精品免费视频| 蜜桃视频在线观看免费视频| 国产欧美日韩精品在线观看| 婷婷av在线| 成人免费观看男女羞羞视频| 久久久久久久久久影视| 96pao国产成视频永久免费| 日韩精品一区二区三区中文精品| 欧美成人精品不卡视频在线观看| 一级特黄性色生活片| 日本免费高清一区二区| 亚洲一区二区在线播放| 亚洲18在线看污www麻豆| 日韩暖暖在线视频| 综合亚洲色图| 亚洲精品视频免费看| 午夜视频在线观看网站| 成人激情文学综合网| 四虎国产精品成人免费影视| 99视频都是精品热在线播放| 国产成人av在线播放| 国产精品18久久久久久久久久| 欧美另类视频在线观看| www.一区二区三区| 色综合视频一区二区三区44| 妞干网在线观看| 亚洲自拍偷拍av| 国产精品99免费看| 亚洲a成v人在线观看| 日本欧美黄网站| 日本一区二区动态图| 无码人妻h动漫| 国产亚洲成av人在线观看导航| 久草视频手机在线观看| 国产成人的电影在线观看| 奇米精品一区二区三区在线观看| 国产人妻精品一区二区三区不卡| 三级视频网站在线| 欧日韩免费视频| 精品亚洲男同gayvideo网站| 日韩最新中文字幕| 97在线观看免费高清| 日韩精品极品视频免费观看| 国产精品二线| 欧美日本国产视频| 久久国产精品二区| 亚洲午夜av| 91九色露脸| jizzjizzjizz中国免费| 久久精品成人| 麻豆亚洲av熟女国产一区二| 一区二区三区免费看视频| 尤物网站在线| 国产精品露脸av在线| 国产日韩中文字幕| 亚洲欧美国产日韩天堂区| 日本xxxwww免费视频| 日韩在线理论| 精品一区二区三区视频在线播放| 被下部羞羞漫画| 欧美激情性xxxxx| 视频国产一区二区三区| 久久国产精品久久精品| 欧美精品少妇| 最近2019年中文视频免费在线观看| wwwwxxxx日韩| 久久久不卡网国产精品一区| 九九热视频免费在线观看| 粉嫩精品久久99综合一区| 国产精品亚洲午夜一区二区三区| 欧美大片欧美激情性色a∨久久| 国产婷婷一区二区| 欧美日韩精品中文字幕一区二区| 黄色在线观看网| 亚洲老板91色精品久久| 成人性生交大免费看| 欧美午夜视频在线观看| 亚洲欧洲国产精品久久| 7777精品伊人久久久大香线蕉完整版| av一本在线| 精精国产xxxx视频在线| 亚洲精选久久| 丁香花高清视频完整版在线观看| 国产又粗又大又爽| 免费h在线看| 欧美浪妇xxxx高跟鞋交| 欧美一区三区| 11024精品一区二区三区日韩| 久久精品导航| 国产麻豆一区二区三区精品视频| 国色天香久久精品国产一区| 九一精品国产| 一区二区三区四区五区精品视频| 欧美a级片免费看| 亚洲激情中文| 国产精品一二三四| 激情小说欧美色图| 特级西西444www大精品视频| 亚洲自拍偷拍网站| 亚洲视频在线观看免费视频| 亚洲激情在线观看视频免费| 欧美性xxxxhd| 啪啪导航网站| 日韩欧美www| 成人午夜一级| 在线播放豆国产99亚洲| 国产女主播在线一区二区| 最近中文字幕在线观看视频| 欧美色图国产精品| 91九色丨porny丨肉丝| 亚洲av无码精品一区二区| 色偷偷888欧美精品久久久| 婷婷亚洲天堂| 久久久99久久| 亚洲综合久久久久| 69久久精品| 欧美综合一区| 翔田千里一区二在线观看| jizz免费观看视频| 久久全国免费视频| 欧美在线|欧美| 97成人在线| 国产精品一香蕉国产线看观看| a级免费在线观看| 亚洲色图欧美自拍| 91久久午夜| 色播五月激情五月| 国产精品午夜久久久久久| 欧美性xxxx极品高清hd直播| 欧美性猛片aaaaaaa做受| 欧美乱妇高清无乱码免费| 欧美亚洲三级| 91啦中文在线观看| 热草久综合在线| 国产免费成人av| 在线亚洲欧美| 激情小说图片视频| 国产精品入口福利| 超碰高清在线| 人妻互换一二三区激情视频| 加勒比一区二区| 色天堂在线视频| 免费一级片在线观看| 久青青在线观看视频国产| av福利精品| 不卡免费追剧大全电视剧网站| jizzjizzjizz美国| 国产成人精品三级高清久久91| 精品动漫av| 亚洲国产欧美国产综合一区| 一区二区免费av| 国产精品一区久久久| 北条麻妃在线一区二区免费播放| 亚洲免费中文字幕| 日韩欧美亚洲范冰冰与中字| 久久99伊人| 久久精品ww人人做人人爽| 日韩子在线观看|