日韩中文字幕色资源,337p日本欧洲中国大胆精品,亚洲专区视频一区二区,91大神视频在线观看,亚洲av日韩精品久久国产多毛女,日韩一区二区三在线视频,av网站免费在线不卡,黄色国产午夜精品久久久,北条av在线一二三

MFC和Win32技術(shù)應(yīng)用分析

來源:網(wǎng)絡(luò)

點(diǎn)擊:2427

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞: MFC,Win32

       

    1. MFC Object和Windows Object的關(guān)系

       

    MFC中最重要的封裝是對(duì)Win32 API的封裝,因此,理解Windows Object和MFC Object (C++對(duì)象,一個(gè)C++類的實(shí)例)之間的關(guān)系是理解MFC的關(guān)鍵之一。所謂Windows Object(Windows對(duì)象)是Win32下用句柄表示的Windows操作系統(tǒng)對(duì)象;所謂MFC Object (MFC對(duì)象)是C++對(duì)象,是一個(gè)C++類的實(shí)例,這里(本書范圍內(nèi))MFC Object是有特定含義的,指封裝Windows Object的C++ Object,并非指任意的C++ Object。

    MFC Object 和Windows Object是不一樣的,但兩者緊密聯(lián)系。以窗口對(duì)象為例:一個(gè)MFC窗口對(duì)象是一個(gè)C++ CWnd類(或派生類)的實(shí)例,是程序直接創(chuàng)建的。在程序執(zhí)行中它隨著窗口類構(gòu)造函數(shù)的調(diào)用而生成,隨著析構(gòu)函數(shù)的調(diào)用而消失。而Windows窗口則是Windows系統(tǒng)的一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的實(shí)例,由一個(gè)“窗口句柄”標(biāo)識(shí),Windows系統(tǒng)創(chuàng)建它并給它分配系統(tǒng)資源。Windows窗口在MFC窗口對(duì)象創(chuàng)建之后,由CWnd類的Create成員函數(shù)創(chuàng)建,“窗口句柄”保存在窗口對(duì)象的m_hWnd成員變量中。Windows窗口可以被一個(gè)程序銷毀,也可以被用戶的動(dòng)作銷毀。MFC窗口對(duì)象和Windows窗口對(duì)象的關(guān)系如圖2-1所示。其他的Windows Object和對(duì)應(yīng)的MFC Object也有類似的關(guān)系。

     

    下面,對(duì)MFC Object和Windows Object作一個(gè)比較。有些論斷對(duì)設(shè)備描述表(MFC類是CDC,句柄是HDC)可能不適用,但具體涉及到時(shí)會(huì)指出。

       

    1. 從數(shù)據(jù)結(jié)構(gòu)上比較

       

      MFC Object是相應(yīng)C++類的實(shí)例,這些類是MFC或者程序員定義的;

      Windows Object是Windows系統(tǒng)的內(nèi)部結(jié)構(gòu),通過一個(gè)句柄來引用;

      MFC給這些類定義了一個(gè)成員變量來保存MFC Object對(duì)應(yīng)的Windows Object的句柄。對(duì)于設(shè)備描述表CDC類,將保存兩個(gè)HDC句柄。

       

    2. 從層次上講比較

       

      MFC Object是高層的,Windows Object是低層的;

      MFC Object封裝了Windows Object的大部分或全部功能,MFC Object的使用者不需要直接應(yīng)用Windows Object的HANDLE(句柄)使用Win32 API,代替它的是引用相應(yīng)的MFC Object的成員函數(shù)。

       

    3. 從創(chuàng)建上比較

       

      MFC Object通過構(gòu)造函數(shù)由程序直接創(chuàng)建;Windows Object由相應(yīng)的SDK函數(shù)創(chuàng)建。

      MFC中,使用這些MFC Object,一般分兩步:

      首先,創(chuàng)建一個(gè)MFC Object,或者在STACK中創(chuàng)建,或者在HEAP中創(chuàng)建,這時(shí),MFC Object的句柄實(shí)例變量為空,或者說不是一個(gè)有效的句柄。

      然后,調(diào)用MFC Object的成員函數(shù)創(chuàng)建相應(yīng)的Windows Object,MFC的句柄變量存儲(chǔ)一個(gè)有效句柄。

      CDC(設(shè)備描述表類)的創(chuàng)建有所不同,在后面的2.3節(jié)會(huì)具體說明CDC及其派生類的創(chuàng)建和使用。

      當(dāng)然,可以在MFC Object的構(gòu)造函數(shù)中創(chuàng)建相應(yīng)的Windows對(duì)象,MFC的GDI類就是如此實(shí)現(xiàn)的,但從實(shí)質(zhì)上講,MFC Object的創(chuàng)建和Windows Object的創(chuàng)建是兩回事。

       

    4. 從轉(zhuǎn)換上比較

       

      可以從一個(gè)MFC Object得到對(duì)應(yīng)的Windows Object的句柄;一般使用MFC Object的成員函數(shù)GetSafeHandle得到對(duì)應(yīng)的句柄。

      可以從一個(gè)已存在的Windows Object創(chuàng)建一個(gè)對(duì)應(yīng)的MFC Object; 一般使用MFC Object的成員函數(shù)Attach或者FromHandle來創(chuàng)建,前者得到一個(gè)永久性對(duì)象,后者得到的可能是一個(gè)臨時(shí)對(duì)象。

       

    5. 從使用范圍上比較

       

      MFC Object對(duì)系統(tǒng)的其他進(jìn)程來說是不可見、不可用的;而Windows Object一旦創(chuàng)建,其句柄是整個(gè)Windows系統(tǒng)全局的。一些句柄可以被其他進(jìn)程使用。典型地,一個(gè)進(jìn)程可以獲得另一進(jìn)程的窗口句柄,并給該窗口發(fā)送消息。

      對(duì)同一個(gè)進(jìn)程的線程來說,只可以使用本線程創(chuàng)建的MFC Object,不能使用其他線程的MFC Object。

       

    6. 從銷毀上比較

       

    MFC Object隨著析構(gòu)函數(shù)的調(diào)用而消失;但Windows Object必須由相應(yīng)的Windows系統(tǒng)函數(shù)銷毀。

    設(shè)備描述表CDC類的對(duì)象有所不同,它對(duì)應(yīng)的HDC句柄對(duì)象可能不是被銷毀,而是被釋放。

    當(dāng)然,可以在MFC Object的析構(gòu)函數(shù)中完成Windows Object的銷毀,MFC Object的GDI類等就是如此實(shí)現(xiàn)的,但是,應(yīng)該看到:兩者的銷毀是不同的。

    每類Windows Object都有對(duì)應(yīng)的MFC Object,下面用表格的形式列出它們之間的對(duì)應(yīng)關(guān)系,如表2-1所示:

    表2-1 MFC Object和Windows Object的對(duì)應(yīng)關(guān)系

     


    描述

    Windows句柄

    MFC Object

    窗口

    HWND

    CWnd and CWnd-derived classes

    設(shè)備上下文

    HDC

    CDC and CDC-derived classes

    菜單

    HMENU

    CMenu

    HPEN

    CGdiObject類,CPen和CPen-derived classes

    刷子

    HBRUSH

    CGdiObject類,CBrush和CBrush-derived classes

    字體

    HFONT

    CGdiObject類,CFont和CFont-derived classes

    位圖

    HBITMAP

    CGdiObject類,CBitmap和CBitmap-derived classes

    調(diào)色板

    HPALETTE

    CGdiObject類,CPalette和CPalette-derived classes

    區(qū)域

    HRGN

    CGdiObject類,CRgn和CRgn-derived classes

    圖像列表

    HimageLIST

    CimageList和CimageList-derived classes

    套接字

    SOCKET

    CSocket,CAsynSocket及其派生類


    表2-1中的OBJECT分以下幾類:

     

    Windows對(duì)象,

    設(shè)備上下文對(duì)象,

    GDI對(duì)象(BITMAP,BRUSH,F(xiàn)ONT,PALETTE,PEN,RGN),

    菜單,

    圖像列表,

    網(wǎng)絡(luò)套接字接口。

    從廣義上來看,文檔對(duì)象和文件可以看作一對(duì)MFC Object和Windows Object,分別用CDocument類和文件句柄描述。

    后續(xù)幾節(jié)分別對(duì)前四類作一個(gè)簡(jiǎn)明扼要的論述。

         

      1. Windows Object

         

        用SDK的Win32 API編寫各種Windows應(yīng)用程序,有其共同的規(guī)律:首先是編寫WinMain函數(shù),編寫處理消息和事件的窗口過程WndProc,在WinMain里頭注冊(cè)窗口(Register Window),創(chuàng)建窗口,然后開始應(yīng)用程序的消息循環(huán)。

        MFC應(yīng)用程序也不例外,因?yàn)镸FC是一個(gè)建立在SDK API基礎(chǔ)上的編程框架。對(duì)程序員來說所不同的是:一般情況下,MFC框架自動(dòng)完成了Windows登記、創(chuàng)建等工作。

        下面,簡(jiǎn)要介紹MFC Window對(duì)Windows Window的封裝。

        1.  

        2. Windows的注冊(cè)

           

    一個(gè)應(yīng)用程序在創(chuàng)建某個(gè)類型的窗口前,必須首先注冊(cè)該“窗口類”(Windows Class)。注意,這里不是C++類的類。Register Window把窗口過程、窗口類型以及其他類型信息和要登記的窗口類關(guān)聯(lián)起來。

       

    1. “窗口類”的數(shù)據(jù)結(jié)構(gòu)

       

      “窗口類”是Windows系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),可以把它理解為Windows系統(tǒng)的類型定義,而Windows窗口則是相應(yīng)“窗口類”的實(shí)例。Windows使用一個(gè)結(jié)構(gòu)來描述“窗口類”,其定義如下:

      typedef struct _WNDCLASSEX {

      UINT cbSize; //該結(jié)構(gòu)的字節(jié)數(shù)

      UINT style; //窗口類的風(fēng)格

      WNDPROC lpfnWndProc; //窗口過程

      int cbClsExtra;

      int cbWndExtra;

      HANDLE hInstance; //該窗口類的窗口過程所屬的應(yīng)用實(shí)例

      HICON hIcon; //該窗口類所用的像標(biāo)

      HCURSOR hCursor; //該窗口類所用的光標(biāo)

      HBRUSH hbrBackground; //該窗口類所用的背景刷

      LPCTSTR lpszMenuName; //該窗口類所用的菜單資源

      LPCTSTR lpszClassName; //該窗口類的名稱

      HICON hIconSm; //該窗口類所用的小像標(biāo)

      } WNDCLASSEX;

      從“窗口類”的定義可以看出,它包含了一個(gè)窗口的重要信息,如窗口風(fēng)格、窗口過程、顯示和繪制窗口所需要的信息,等等。關(guān)于窗口過程,將在后面消息映射等有關(guān)章節(jié)作詳細(xì)論述。

      Windows系統(tǒng)在初始化時(shí),會(huì)注冊(cè)(Register)一些全局的“窗口類”,例如通用控制窗口類。應(yīng)用程序在創(chuàng)建自己的窗口時(shí),首先必須注冊(cè)自己的窗口類。在MFC環(huán)境下,有幾種方法可以用來注冊(cè)“窗口類”,下面分別予以討論。

       

    2. 調(diào)用AfxRegisterClass注冊(cè)

       

      AfxRegisterClass函數(shù)是MFC全局函數(shù)。AfxRegisterClass的函數(shù)原型:

      BOOL AFXAPI AfxRegisterClass(WNDCLASS *lpWndClass);

      參數(shù)lpWndClass是指向WNDCLASS結(jié)構(gòu)的指針,表示一個(gè)“窗口類”。

      首先,AfxRegisterClass檢查希望注冊(cè)的“窗口類”是否已經(jīng)注冊(cè),如果是則表示已注冊(cè),返回TRUE,否則,繼續(xù)處理。

      接著,調(diào)用::RegisterClass(lpWndClass)注冊(cè)窗口類;

      然后,如果當(dāng)前模塊是DLL模塊,則把注冊(cè)“窗口類”的名字加入到模塊狀態(tài)的域m_szUnregisterList中。該域是一個(gè)固定長(zhǎng)度的緩沖區(qū),依次存放模塊注冊(cè)的“窗口類”的名字(每個(gè)名字是以“\n\0”結(jié)尾的字符串)。之所以這樣做,是為了DLL退出時(shí)能自動(dòng)取消(Unregister)它注冊(cè)的窗口類。至于模塊狀態(tài)將在后面第9章詳細(xì)的討論。

      最后,返回TRUE表示成功注冊(cè)。

       

    3. 調(diào)用AfxRegisterWndClass注冊(cè)

       

      AfxRegisterWndClass函數(shù)也是MFC全局函數(shù)。AfxRegisterWndClass的函數(shù)原型:

      LPCTSTR AFXAPI AfxRegisterWndClass(UINT nClassStyle,

      HCURSOR hCursor, HBRUSH hbrBackground, HICON hIcon)

      參數(shù)1指定窗口類風(fēng)格;

      參數(shù)2、3、4分別指定該窗口類使用的光標(biāo)、背景刷、像標(biāo)的句柄,缺省值是0。

      此函數(shù)根據(jù)窗口類屬性動(dòng)態(tài)地產(chǎn)生窗口類的名字,然后,判斷是否該類已經(jīng)注冊(cè),是則返回窗口類名;否則用指定窗口類的屬性(窗口過程指定為缺省窗口過程),調(diào)用AfxRegisterCalss注冊(cè)窗口類,返回類名。

      動(dòng)態(tài)產(chǎn)生的窗口類名字由以下幾部分組成(包括冒號(hào)分隔符):

      如果參數(shù)2、3、4全部為NULL,則由三部分組成。

      “Afx”+“:”+模塊實(shí)例句柄”+“:”+“窗口類風(fēng)格”

      否則,由六部分組成:

      “Afx”+“:”+模塊實(shí)例句柄+“:”+“窗口類風(fēng)格”+“:”+光標(biāo)句柄+“:”+背景刷句柄+“:”+像標(biāo)句柄。比如:“Afx:400000:b:13de:6:32cf”。

      該函數(shù)在MFC注冊(cè)主邊框或者文檔邊框“窗口類”時(shí)被調(diào)用。具體怎樣用在5.3.3.3節(jié)會(huì)指出。

       

    4. 隱含的使用MFC預(yù)定義的的窗口類

       

      MFC4.0以前的版本提供了一些預(yù)定義的窗口類,4.0以后不再預(yù)定義這些窗口類。但是,MFC仍然沿用了這些窗口類,例如:

      用于子窗口的“AfxWnd”;

      用于邊框窗口(SDI主窗口或MDI子窗口)或視的“AfxFrameOrView”;

      用于MDI主窗口的“AfxMDIFrame”;

      用于標(biāo)準(zhǔn)控制條的“AfxControlBar”。

      這些類的名字就 是“AfxWnd”、“AfxFrameOrView”、“AfxMdiFrame”、 “AfxControlBar”加上前綴和后綴(用來標(biāo)識(shí)版本號(hào)或是否調(diào)試版等)。它們使用標(biāo)準(zhǔn)應(yīng)用程序像標(biāo)、標(biāo)準(zhǔn)文檔像標(biāo)、標(biāo)準(zhǔn)光標(biāo)等標(biāo)準(zhǔn)資源。為了使用這些“窗口類”,MFC會(huì)在適當(dāng)?shù)臅r(shí)候注冊(cè)這些類:或者要?jiǎng)?chuàng)建該類的窗口時(shí),或者創(chuàng)建應(yīng)用程序的主窗口時(shí),等等。

      MFC內(nèi)部使用了函數(shù)

      BOOL AFXAPI AfxEndDeferRegisterClass(short fClass)

      來幫助注冊(cè)上述原MFC版本的預(yù)定義“窗口類”。參數(shù)fClass區(qū)分了那些預(yù)定義窗口的類型。根據(jù)不同的類型,使用不同的窗口類風(fēng)格、窗口類名字等填充WndClass的域,然后調(diào)用AfxRegisterClass注冊(cè)窗口類。并且注冊(cè)成功之后,通過模塊狀態(tài)的m_fRegisteredClasses記錄該窗口類已經(jīng)注冊(cè),這樣該模塊在再次需要注冊(cè)這些窗口類之前可以查一下m_fRegisteredClasses,如果已經(jīng)注冊(cè)就不必浪費(fèi)時(shí)間了。為此,MFC內(nèi)部使用宏

      AfxDeferRegisterClass(short fClass)

      來注冊(cè)“窗口類”,如果m_fRegisteredClasses記錄了注冊(cè)的窗口類,返回TRUE,否則,調(diào)用AfxEndDeferRegisterClass注冊(cè)。

      注冊(cè)這些窗口類的例子:

      MFC在加載邊框窗口時(shí),會(huì)自動(dòng)地注冊(cè)“AfxFrameOrView”窗口類。在創(chuàng)建視時(shí),就會(huì)使用該“窗口類”創(chuàng)建視窗口。當(dāng)然,如果創(chuàng)建視窗口時(shí),該“窗口類”還沒有注冊(cè),MFC將先注冊(cè)它然后使用它創(chuàng)建視窗口。

    5. 不過,MFC并不使用”AfxMDIFrame”來創(chuàng)建MDI主窗口,因?yàn)樵诩虞d主窗口時(shí)一般都指定了主窗口的資源,MFC使用指定的像標(biāo)注冊(cè)新的MDI主窗口類(通過函數(shù)AfxRegisterWndClass完成,因此“窗口類”的名字是動(dòng)態(tài)產(chǎn)生的)。

    6. MDI子窗口類似于上述MDI主窗口的處理。

      在MFC創(chuàng)建控制窗口時(shí),如工具欄窗口,如果“AfxControlBar”類還沒有注冊(cè),則注冊(cè)它。注冊(cè)過程很簡(jiǎn)單,就是調(diào)用::InitCommonControl加載通用控制動(dòng)態(tài)連接庫。

       

    7. 調(diào)用::RegisterWndClass。

       

      直接調(diào)用Win32的窗口注冊(cè)函數(shù)::RegisterWndClass注冊(cè)“窗口類”,這樣做有一個(gè)缺點(diǎn):如果是DLL模塊,這樣注冊(cè)的“窗口類”在程序退出時(shí)不會(huì)自動(dòng)的被取消注冊(cè)(Unregister)。所以必須記得在DLL模塊退出時(shí)取消它所注冊(cè)的窗口類。

       

    8. 子類化

       

    子類化(Subclass)一個(gè)“窗口類”,可自動(dòng)地得到它的“窗口類”屬性。

     

        1. MFC窗口類CWnd

           

    在Windows系統(tǒng)里,一個(gè)窗口的屬性分兩個(gè)地方存放:一部分放在“窗口類”里頭,如上所述的在注冊(cè)窗口時(shí)指定;另一部分放在Windows Object本身,如:窗口的尺寸,窗口的位置(X,Y軸),窗口的Z軸順序,窗口的狀態(tài)(ACTIVE,MINIMIZED,MAXMIZED,RESTORED…),和其他窗口的關(guān)系(父窗口,子窗口…),窗口是否可以接收鍵盤或鼠標(biāo)消息,等等。

    為了表達(dá)所有這些窗口的共性,MFC設(shè)計(jì)了一個(gè)窗口基類CWnd。有一點(diǎn)非常重要,那就是CWnd提供了一個(gè)標(biāo)準(zhǔn)而通用的MFC窗口過程,MFC下所有的窗口都使用這個(gè)窗口過程。至于通用的窗口過程卻能為各個(gè)窗口實(shí)現(xiàn)不同的操作,那就是MFC消息映射機(jī)制的奧秘和作用了。這些,將在后面有關(guān)章節(jié)詳細(xì)論述。

    CWnd提供了一系列成員函數(shù),或者是對(duì)Win32相關(guān)函數(shù)的封裝,或者是CWnd新設(shè)計(jì)的一些函數(shù)。這些函數(shù)大致如下。

    (1)窗口創(chuàng)建函數(shù)

    這里主要討論函數(shù)Create和CreateEx。它們封裝了Win32窗口創(chuàng)建函數(shù)::CreateWindowEx。Create的原型如下:

    BOOL CWnd::Create(LPCTSTR lpszClassName,

    LPCTSTR lpszWindowName, DWORD dwStyle,

    const RECT& rect,

    CWnd* pParentWnd, UINT nID,

    CCreateContext* pContext)

    Create是一個(gè)虛擬函數(shù),用來創(chuàng)建子窗口(不能創(chuàng)建桌面窗口和POP UP窗口)。CWnd的基類可以覆蓋該函數(shù),例如邊框窗口類等覆蓋了該函數(shù)以實(shí)現(xiàn)邊框窗口的創(chuàng)建,視類則使用它來創(chuàng)建視窗口。

     

    Create調(diào)用了成員函數(shù)CreateEx。CWnd::CreateEx的原型如下:

    BOOL CWnd::CreateEx(DWORD dwExStyle, LPCTSTR lpszClassName,

    LPCTSTR lpszWindowName, DWORD dwStyle,

    int x, int y, int nWidth, int nHeight,

    HWND hWndParent, HMENU nIDorHMenu, LPVOID lpParam)

    CreateEx有11個(gè)參數(shù),它將調(diào)用::CreateWindowEx完成窗口的創(chuàng)建,這11個(gè)參數(shù)對(duì)應(yīng)地傳遞給::CreateWindowEx。參數(shù)指定了窗口擴(kuò)展風(fēng)格、“窗口類”、窗口名、窗口大小和位置、父窗口句柄、窗口菜單和窗口創(chuàng)建參數(shù)。

    CreateEx的處理流程將在后面4.4.1節(jié)討論窗口過程時(shí)分析。

    窗口創(chuàng)建時(shí)發(fā)送WM_CREATE消息,消息參數(shù)lParam指向一個(gè)CreateStruct結(jié)構(gòu)的變量,該結(jié)構(gòu)有11個(gè)域,其描述見后面4.4.1節(jié)對(duì)窗口過程的分析,Windows使用和CreateEx參數(shù)一樣的內(nèi)容填充該變量。

    (2)窗口銷毀函數(shù)

    例如

    DestroyWindow函數(shù) 銷毀窗口

    PostNcDestroy( ),銷毀窗口后調(diào)用,虛擬函數(shù)

     

    (3)用于設(shè)定、獲取、改變窗口屬性的函數(shù),例如:

    SetWindowText(CString tiltle) 設(shè)置窗口標(biāo)題

    GetWindowText() 得到窗口標(biāo)題

    SetIcon(HICON hIcon, BOOL bBigIcon);設(shè)置窗口像標(biāo)

    GetIcon( BOOL bBigIcon ) ;得到窗口像標(biāo)

    GetDlgItem( int nID);得到窗口類指定ID的控制子窗口

    GetDC(); 得到窗口的設(shè)備上下文

    SetMenu(CMenu *pMenu); 設(shè)置窗口菜單

    GetMenu();得到窗口菜單

    …

     

    (4)用于完成窗口動(dòng)作的函數(shù)

    用于更新窗口,滾動(dòng)窗口,等等。一部分成員函數(shù)設(shè)計(jì)成或可重載(Overloaded)函數(shù),或虛擬(Overridden)函數(shù),或MFC消息處理函數(shù)。這些函數(shù)或者實(shí)現(xiàn)了一部分功能,或者僅僅是一個(gè)空函數(shù)。如:

       

    • 有關(guān)消息發(fā)送的函數(shù):

       

    SendMessage( UINT message,WPARAM wParam = 0, LPARAM lParam = 0 );

    給窗口發(fā)送發(fā)送消息,立即調(diào)用方式

    PostMessage(( UINT message,WPARAM wParam = 0, LPARAM lParam = 0 );

    給窗口發(fā)送消息,放進(jìn)消息隊(duì)列

    …

       

    • 有關(guān)改變窗口狀態(tài)的函數(shù)

       

    MoveWindow( LPCRECT lpRect, BOOL bRepaint = TRUE );

    移動(dòng)窗口到指定位置

    ShowWindow(BOOL );顯示窗口,使之可見或不可見

    ….

       

    • 實(shí)現(xiàn)MFC消息處理機(jī)制的函數(shù):

       

    virtual LRESULT WindowProc( UINT message, WPARAM wParam, LPARAM lParam ); 窗口過程,虛擬函數(shù)

     

    virtual BOOL OnCommand( WPARAM wParam, LPARAM lParam );處理命令消息

    …

       

    • 消息處理函數(shù):

       

    OnCreate( LPCREATESTRUCT lpCreateStruct );MFC窗口消息處理函數(shù),窗口創(chuàng)建時(shí)由MFC框架調(diào)用

    OnClose();MFC窗口消息處理函數(shù),窗口創(chuàng)建時(shí)由MFC框架調(diào)用

    …

       

    • 其他功能的函數(shù)

       

    CWnd的導(dǎo)出類是類型更具體、功能更完善的窗口類,它們繼承了CWnd的屬性和方法,并提供了新的成員函數(shù)(消息處理函數(shù)、虛擬函數(shù)、等等)。

    常用的窗口類及其層次關(guān)系見圖1-1。

           

        1. 在MFC下創(chuàng)建一個(gè)窗口對(duì)象

           

    MFC下創(chuàng)建一個(gè)窗口對(duì)象分兩步,首先創(chuàng)建MFC窗口對(duì)象,然后創(chuàng)建對(duì)應(yīng)的Windows窗口。在內(nèi)存使用上,MFC窗口對(duì)象可以在?;蛘叨?使用new創(chuàng)建)中創(chuàng)建。具體表述如下:

       

    • 創(chuàng)建MFC窗口對(duì)象。通過定義一個(gè)CWnd或其派生類的實(shí)例變量或者動(dòng)態(tài)創(chuàng)建一個(gè)MFC窗口的實(shí)例,前者在??臻g創(chuàng)建一個(gè)MFC窗口對(duì)象,后者在堆空間創(chuàng)建一個(gè)MFC窗口對(duì)象。

       

       

    • 調(diào)用相應(yīng)的窗口創(chuàng)建函數(shù),創(chuàng)建Windows窗口對(duì)象。

       

    例如:在前面提到的AppWizard產(chǎn)生的源碼中,有CMainFrame(派生于CMDIFrame(SDI)或者CMDIFrameWnd(MDI))類。它有兩個(gè)成員變量定義如下:

    CToolBar m_wndToolBar;

    CStatusBar m_wndStatusBar;

    當(dāng)創(chuàng)建CMainFrame類對(duì)象時(shí),上面兩個(gè)MFC Object也被構(gòu)造。

     

    CMainFrame還有一個(gè)成員函數(shù)OnCreate(LPCREATESTRUCT lpCreateStruct),


    它的實(shí)現(xiàn)包含如下一段代碼,調(diào)用CToolBar和CStatusBar的成員函數(shù)Create來創(chuàng)建上述兩個(gè)MFC對(duì)象對(duì)應(yīng)的工具欄HWND窗口和狀態(tài)欄HWND窗口:

    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

    {…

    if (!m_wndToolBar.Create(this) ||

    !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))

    {

    TRACE0("Failed to create toolbar\n");

    return -1; // fail to create

    }

     

    if (!m_wndStatusBar.Create(this) ||

    !m_wndStatusBar.SetIndicators(indicators,

    sizeof(indicators)/sizeof(UINT)))

    {

    TRACE0("Failed to create status bar\n");

    return -1; // fail to create

    }

    …


    }

     

    關(guān)于工具欄、狀態(tài)欄將在后續(xù)有關(guān)章節(jié)作詳細(xì)討論。

    在MFC中,還提供了一種動(dòng)態(tài)創(chuàng)建技術(shù)。動(dòng)態(tài)創(chuàng)建的過程實(shí)際上也如上所述分兩步,只不過MFC使用這個(gè)技術(shù)是由框架自動(dòng)地完成整個(gè)過程的。通??蚣艽翱?、文檔框架窗口、視使用了動(dòng)態(tài)創(chuàng)建。介于MFC的結(jié)構(gòu),CFrameWnd和CView及其派生類的實(shí)例即使不使用動(dòng)態(tài)創(chuàng)建,也要用new在堆中分配。理由見窗口的銷毀(2.2.5節(jié))。

    至于動(dòng)態(tài)創(chuàng)建技術(shù),將在下一章具體討論。

    在Windows窗口的創(chuàng)建過程中,將發(fā)送一些消息,如:

    在創(chuàng)建了窗口的非客戶區(qū)(Nonclient area)之后,發(fā)送消息WM_NCCREATE;

    在創(chuàng)建了窗口的客戶區(qū)(client area)之后,發(fā)送消息WM_CREATE;

    窗口的窗口過程在窗口顯示之前收到這兩個(gè)消息。

    如果是子窗口,在發(fā)送了上述兩個(gè)消息之后,還給父窗口發(fā)送WM_PARENATNOTIFY消息。其他類或風(fēng)格的窗口可能發(fā)送更多的消息,具體參見SDK開發(fā)文檔。

           

        1. MFC窗口的使用

           

          MFC提供了大量的窗口類,其功能和用途各異。程序員應(yīng)該選擇哪些類來使用,以及怎么使用他們呢?

          直接使用MFC提供的窗口類或者先從MFC窗口類派生一個(gè)新的C++類然后使用它,這些在通常情況下都不需要程序員提供窗口注冊(cè)的代碼。是否需要派生新的C++類,視MFC已有的窗口類是否能滿足使用要求而定。派生的C++類繼承了基類的特性并改變或擴(kuò)展了它的功能,例如增加或者改變對(duì)消息、事件的特殊處理等。

          主要使用或繼承以下一些MFC窗口類(其層次關(guān)系圖見圖1-1):

          框架類CFrameWnd,CMdiFrameWnd;

          文檔框架CMdiChildWnd;

          視圖CView和CView派生的有特殊功能的視圖如:列表CListView,編輯CEditView,樹形列表CTreeView,支持RTF的CRichEditView,基于對(duì)話框的視CFormView等等。

          對(duì)話框CDialog。

          通常,都要從這些類派生應(yīng)用程序的框架窗口和視窗口或者對(duì)話框。

           

          工具條CToolBar

          狀態(tài)條CStatusBar

          其他各類控制窗口,如列表框CList,編輯框CEdit,組合框CComboBox,按鈕Cbutton等。

          通常,直接使用這些類。

           

        2. 在MFC下窗口的銷毀

           

    窗口對(duì)象使用完畢,應(yīng)該銷毀。在MFC下,一個(gè)窗口對(duì)象的銷毀包括HWND窗口對(duì)象的銷毀和MFC窗口對(duì)象的銷毀。一般情況下,MFC編程框架自動(dòng)地處理了這些。

    (1)對(duì)CFrameWnd和CView的派生類

    這些窗口的關(guān)閉導(dǎo)致銷毀窗口的函數(shù)DestroyWindow被調(diào)用。銷毀Windows窗口時(shí),MFC框架調(diào)用的最后一個(gè)成員函數(shù)是OnNcDestroy函數(shù),該函數(shù)負(fù)責(zé)Windows清理工作,并在最后調(diào)用虛擬成員函數(shù)PostNcDestroy。CFrameWnd和CView的PostNcDestroy調(diào)用delete this刪除自身這個(gè)MFC窗口對(duì)象。

    所以,對(duì)這些窗口,如前所述,應(yīng)在堆(Heap)中分配,而且,不要對(duì)這些對(duì)象使用delete操作。

     

    (2)對(duì)Windows Control窗口

    在它們的析構(gòu)函數(shù)中,將調(diào)用DestroyWidnow來銷毀窗口。如果在棧中分配這樣的窗口對(duì)象,則在超出作用范圍的時(shí)候,隨著析構(gòu)函數(shù)的調(diào)用,MFC窗口對(duì)象和它的Windows window對(duì)象都被銷毀。如果在堆(Heap)中分配,則顯式調(diào)用delete操作符,導(dǎo)致析構(gòu)函數(shù)的調(diào)用和窗口的銷毀。

    所以,這種類型的窗口應(yīng)盡可能在棧中分配,避免用額外的代碼來銷毀窗口。如前所述的CMainFrame的成員變量m_wndStatusBar和m_wndToolBar就是這樣的例子。

    (3)對(duì)于程序員直接從CWnd派生的窗口

    程序員可以在派生類中實(shí)現(xiàn)上述兩種機(jī)制之一,然后,在相應(yīng)的規(guī)范下使用。

    后面章節(jié)將詳細(xì)的討論應(yīng)用程序退出時(shí)關(guān)閉、清理窗口的過程。

         

      1. 設(shè)備描述表

         

        1.  

        2. 設(shè)備描述表概述

           

    當(dāng)一個(gè)應(yīng)用程序使用GDI函數(shù)時(shí),必須先裝入特定的設(shè)備驅(qū)動(dòng)程序,然后為繪制窗口準(zhǔn)備設(shè)備描述表,比如指定線的寬度和顏色、刷子的樣式和顏色、字體、剪裁區(qū)域等等。不像其他Win32結(jié)構(gòu),設(shè)備描述表不能被直接訪問,只能通過系列Win32函數(shù)來間接地操作。

    如同Windows“窗口類”一樣,設(shè)備描述表也是一種Windows數(shù)據(jù)結(jié)構(gòu),用來描述繪制窗口所需要的信息。它定義了一個(gè)坐標(biāo)映射模式、一組GDI圖形對(duì)象及其屬性。這些GDI對(duì)象包括用于畫線的筆,繪圖、填圖的刷子,位圖,調(diào)色板,剪裁區(qū)域,及路徑(Path)。

    表2-2列出了設(shè)備描述表的結(jié)構(gòu)和各項(xiàng)缺省值,表2-3列出了設(shè)備描述表的類型,表2-4顯示設(shè)備描述表的類型。

    表2-2 設(shè)備描述表的結(jié)構(gòu)


    屬性

    缺省值

    Background color

    Background color setting from Windows Control Panel (typically, white)

    Background mode

    OPAQUE

    Bitmap

    None

    Brush

    WHITE_BRUSH

    Brush origin

    (0,0)

    Clipping region

    Entire window or client area with the update region clipped, as appropriate. Child and pop-up windows in the client area may also be clipped

    Palette

    DEFAULT_PALETTE

    Current pen position

    (0,0)

    Device origin

    Upper left corner of the window or the client area

    Drawing mode

    R2_COPYPEN

    Font

    SYSTEM_FONT (SYSTEM_FIXED_FONT for applications written to run with Windows versions 3.0 and earlier)

    Intercharacter spacing

    0

    Mapping mode

    MM_TEXT

    Pen

    BLACK_PEN

    Polygon-fill mode

    ALTERNATE

    Stretch mode

    BLACKONWHITE

    Text color

    Text color setting from Control Panel (typically, black)

    Viewport extent

    (1,1)

    Viewport origin

    (0,0)

    Window extent

    (1,1)

    Window origin

    (0,0)


     

    表2-3 設(shè)備描述表的分類


    Display

    顯示設(shè)備描述表,提供對(duì)視頻顯示設(shè)備上的繪制操作的支持

    Printer

    打印設(shè)備描述表,提供對(duì)打印機(jī)、繪圖儀設(shè)備上的繪制操作的支持

    Memory

    內(nèi)存設(shè)備描述表,提供對(duì)位圖操作的支持

    Information

    信息設(shè)備描述表,提供對(duì)操作設(shè)備信息獲取的支持


    表2-3中的顯示設(shè)備描述表又分三種類型,如表2-4所示。

    表2-4 顯示設(shè)備描述表的分類

     


    名稱

    特點(diǎn)

    功能

    Class Device

    Contexts

    提供對(duì)Win16的向后兼容

     

    Common

    Device

    Contexts

    在Windows系統(tǒng)的高速緩沖區(qū),數(shù)量有限

    Applicaion獲取設(shè)備描述表時(shí),Windows用缺省值初始化該設(shè)備描述表,Application使用它完成繪制操作,然后釋放

    Private

    Device

    Contexts

    沒有數(shù)量限制,用完不需釋放一次獲取,多次使用

    多次使用過程中,每次設(shè)備描述表屬性的任何修改或變化都會(huì)被保存,以支持快速繪制


     

     

     

    (1)使用設(shè)備描述表的步驟

    要使用設(shè)備描述表,一般有如下步驟:

       

    • 獲取或者創(chuàng)建設(shè)備描述表;

       

       

    • 必要的話,改變?cè)O(shè)備描述表的屬性;

       

       

    • 使用設(shè)備描述表完成繪制操作;

       

       

    • 釋放或刪除設(shè)備描述表。

       

    Common設(shè)備描述表通過::GetDC,::GetDCEx,::BeginPaint來獲得一個(gè)設(shè)備描述表,用畢,用::ReleaseDC或::EndPaint釋放設(shè)備描述表;

    Printer設(shè)備描述表通過::CreateDC創(chuàng)建設(shè)備描述表,用::DeleteDC刪除設(shè)備描述表。

    Memory設(shè)備描述表通過::CreateCompatibleDC創(chuàng)建設(shè)備描述表,用::DeleteDC刪除。

    Information設(shè)備描述表通過::CreateIC創(chuàng)建設(shè)備描述表,用::DeleteDC刪除。

    (2)改變?cè)O(shè)備描述表屬性的途徑

    要改變?cè)O(shè)備描述表的屬性,可通過以下途徑:

    用::SelectObject選入新的除調(diào)色板以外的GDI Object到設(shè)備描述表中;

    對(duì)于調(diào)色板,使用::SelectPalette函數(shù)選入邏輯調(diào)色板,并使用::RealizePalette把邏輯調(diào)色板的入口映射到物理調(diào)色板中。

    用其他API函數(shù)改變其他屬性,如::SetMapMode改變映射模式。

           

        1. 設(shè)備描述表在MFC中的實(shí)現(xiàn)

           

    MFC提供了CDC類作為設(shè)備描述表類的基類,它封裝了Windows的HDC設(shè)備描述表對(duì)象和相關(guān)函數(shù)。

       

    1. CDC類

       

      CDC類包含了各種類型的Windows設(shè)備描述表的全部功能,封裝了所有的Win32 GDI 函數(shù)和設(shè)備描述表相關(guān)的SDK函數(shù)。在MFC下,使用CDC的成員函數(shù)來完成所有的窗口繪制工作。

      CDC 類的結(jié)構(gòu)示意圖2-2所示。    

    2.  

      CDC類有兩個(gè)成員變量:m_hDC,m_hAttribDC,它們都是Windows設(shè)備描述表句柄。CDC的成員函數(shù)作輸出操作時(shí),使用m_Hdc;要獲取設(shè)備描述表的屬性時(shí),使用m_hAttribDC。

      在創(chuàng)建一個(gè)CDC類實(shí)例時(shí),缺省的m_hDC等于m_hAttribDC。如果需要的話,程序員可以分別指定它們。例如,MFC框架實(shí)現(xiàn)CMetaFileDC類時(shí),就是如此:CMetaFileDC從物理設(shè)備上讀取設(shè)備信息,輸出則送到元文件(metafile)上,所以m_hDC和m_hAttribDC是不同的,各司其責(zé)。還有一個(gè)類似的例子:打印預(yù)覽的實(shí)現(xiàn),一個(gè)代表打印機(jī)模擬輸出,一個(gè)代表屏幕顯示。

      CDC封裝::SelectObject(HDC hdc,HGDIOBJECT hgdiobject)函數(shù)時(shí),采用了重載技術(shù),即它針對(duì)不同的GDI對(duì)象,提供了名同而參數(shù)不同的成員函數(shù):

      SelectObject(CPen *pen)用于選入筆;

      SelectObject(CBitmap* pBitmap)用于選入位圖;

      SelectObject(CRgn *pRgn)用于選入剪裁區(qū)域;

      SelectObject(CBrush *pBrush)用于選入刷子;

      SelectObject(CFont *pFont)用于選入字體;

      至于調(diào)色板,使用SelectPalette(CPalette *pPalette,BOOL bForceBackground )選入調(diào)色板到設(shè)備描述表,使用RealizePalletter()實(shí)現(xiàn)邏輯調(diào)色板到物理調(diào)色板的映射。

       

    3. 從CDC派生出功能更具體的設(shè)備描述表

       

    從CDC 派生出四個(gè)功能更具體的設(shè)備描述表類。層次如圖2-3所示。

      

    下面,分別討論派生出的四種設(shè)備描述表。

       

    • CCientDC

       

    代表窗口客戶區(qū)的設(shè)備描述表。其構(gòu)造函數(shù)CClientDC(CWnd *pWin)通過::GetDC獲取指定窗口的客戶區(qū)的設(shè)備描述表HDC,并且使用成員函數(shù)Attach把它和CClientDC對(duì)象捆綁在一起;其析構(gòu)函數(shù)使用成員函數(shù)Detach把設(shè)備描述表句柄HDC分離出來,并調(diào)用::ReleaseDC釋放設(shè)備描述表HDC。

       

    • CPaintDC

       

    僅僅用于響應(yīng)WM_PAINT消息時(shí)繪制窗口,因?yàn)樗臉?gòu)造函數(shù)調(diào)用了::BeginPaint獲取設(shè)備描述表HDC,并且使用成員函數(shù)Attach把它和CPaintDC對(duì)象捆綁在一起;析構(gòu)函數(shù)使用成員函數(shù)Detach把設(shè)備描述表句柄HDC分離出來,并調(diào)用::EndPaint釋放設(shè)備描述表HDC,而::BeginPaint和::EndPaint僅僅在響應(yīng)WM_PAINT時(shí)使用。

       

    • CMetaFileDC

       

    用于生成元文件。

       

    • CWindowDC

       

    代表整個(gè)窗口區(qū)(包括非客戶區(qū))的設(shè)備描述表。其構(gòu)造函數(shù)CWindowDC(CWnd *pWin)通過::GetWindowDC獲取指定窗口的客戶區(qū)的設(shè)備描述表HDC,并使用Attach把它和CWindowDC對(duì)象捆綁在一起;其析構(gòu)函數(shù)使用Detach把設(shè)備描述表HDC分離出來,調(diào)用::ReleaseDC釋放設(shè)備描述表HDC。

           

        1. MFC設(shè)備描述表類的使用

           

       

    1. 使用CPaintDC、CClientDC、CWindowDC的方法

       

      首先,定義一個(gè)這些類的實(shí)例變量,通常在棧中定義。然后,使用它。

      例如,MFC中CView對(duì)WM_PAINT消息的實(shí)現(xiàn)方法如下:

      void CView::OnPaint()

      {

      // standard paint routine

      CPaintDC dc(this);

      OnPrepareDC(&dc);

      OnDraw(&dc);

      }

      在棧中定義了CPaintDC類型的變量dc,隨著構(gòu)造函數(shù)的調(diào)用獲取了設(shè)備描述表;設(shè)備描述表使用完畢,超出其有效范圍就被自動(dòng)地清除,隨著析構(gòu)函數(shù)的調(diào)用,其獲取的設(shè)備描述表被釋放。

      如果希望在堆中創(chuàng)建,例如

      CPaintDC *pDC;

      pDC = new CPaintDC(this)

      則在使用完畢時(shí),用delete刪除pDC:

      delete pDC;

       

       

    2. 直接使用CDC

       

    需要注意的是:在生成CDC對(duì)象的時(shí)候,并不像它的派生類那樣,在構(gòu)造函數(shù)里獲取相應(yīng)的Windows設(shè)備描述表。最好不要使用::GetDC等函數(shù)來獲取一個(gè)設(shè)備描述表,而是創(chuàng)建一個(gè)設(shè)備描述表。其構(gòu)造函數(shù)如下:

    CDC::CDC()

    {

     

     


    m_hDC = NULL;

    m_hAttribDC = NULL;

    m_bPrinting = FALSE;


     

     

    }

    其析構(gòu)函數(shù)如下:

    CDC::~CDC()

    {

     

     


    if (m_hDC != NULL)

    ::DeleteDC(Detach());


     

     

    }

    在CDC析構(gòu)函數(shù)中,如果設(shè)備描述表句柄不空,則調(diào)用DeleteDC刪除它。這是直接使用CDC時(shí)最好創(chuàng)建Windows設(shè)備描述表的理由。如果設(shè)備描述表不是創(chuàng)建的,則應(yīng)該在析構(gòu)函數(shù)被調(diào)用前分離出設(shè)備描述表句柄并用::RealeaseDC釋放它,釋放后m_hDC為空,則在析構(gòu)函數(shù)調(diào)用時(shí)不會(huì)執(zhí)行::DeleteDC。當(dāng)然,不用擔(dān)心CDC的派生類的析構(gòu)函數(shù)調(diào)用CDC的析構(gòu)函數(shù),因?yàn)镃DC::~CDC()不是虛擬析構(gòu)函數(shù)。

    直接使用CDC的例子是內(nèi)存設(shè)備上下文,例如:

    CDC dcMem; //聲明一個(gè)CDC對(duì)象

    dcMem.CreateCompatibleDC(&dc); //創(chuàng)建設(shè)備描述表

    pbmOld = dcMem.SelectObject(&m_bmBall);//更改設(shè)備描述表屬性

    …//作一些繪制操作

     

    dcMem.SelectObject(pbmOld);//恢復(fù)設(shè)備描述表的屬性

    dcMem.DeleteDC(); //可以不調(diào)用,而讓析構(gòu)函數(shù)去刪除設(shè)備描述表

         

      1. GDI對(duì)象

         

    在討論設(shè)備描述表時(shí),已經(jīng)多次涉及到GDI對(duì)象。這里,需強(qiáng)調(diào)一下:GDI對(duì)象要選入Windows 設(shè)備描述表后才能使用;用畢,要恢復(fù)設(shè)備描述表的原GDI對(duì)象,并刪除該GDI對(duì)象。

    一般按如下步驟使用GDI對(duì)象:

    Create or get a GDI OBJECT hNewGdi;

     

    hOldGdi = ::SelectObject(hdc, hNewGdi)

    ……

    ::SelectObject(hdc, hOldGdi)

    ::DeleteObject(hNewGdi)

    先創(chuàng)建或得到一個(gè)GDI對(duì)象,然后把它選入設(shè)備描述表并保存它原來的GDI對(duì)象;用畢恢復(fù)設(shè)備描述表原來的GDI對(duì)象并刪除新創(chuàng)建的GDI對(duì)象。

    需要指出的是,如果hNewGdi是一個(gè)Stock GDI對(duì)象,可以不刪除(刪除也可以)。通過

     

     


    HGDIOBJ GetStockObject(

    int fnObject // type of stock object

    );


     

     

    來獲取Stock GDI對(duì)象。

     

       

    1. MFC GDI對(duì)象

       

      MFC用一些類封裝了Windows GDI對(duì)象和相關(guān)函數(shù),層次結(jié)構(gòu)如圖2-4所示:

       

       

    1.  

      CGdiObject封裝了Windows GDI Object共有的特性。其派生類在繼承的基礎(chǔ)上,主要封裝了各類GDI的創(chuàng)建函數(shù)以及和具體GDI對(duì)象相關(guān)的操作。

           

    2. CGdiObject的構(gòu)造函數(shù)僅僅讓m_hObject為空。如果m_hObject不空,其析構(gòu)函數(shù)將刪除對(duì)應(yīng)的Windows GDI對(duì)象。MFC GDI對(duì)象和Windows GDI對(duì)象的關(guān)系如圖2-5所示。

       

    3. 使用MFC GDI類的使用

       

    首先創(chuàng)建GDI對(duì)象,可分一步或兩步創(chuàng)建。一步創(chuàng)建就是構(gòu)造MFC對(duì)象和Windows GDI對(duì)象一步完成;兩步創(chuàng)建則先構(gòu)造MFC對(duì)象,接著創(chuàng)建Windows GDI對(duì)象。然后,把新創(chuàng)建的GDI對(duì)象選進(jìn)設(shè)備描述表,取代原GDI對(duì)象并保存。最后,恢復(fù)原GDI對(duì)象。例如:

    void CMyView::OnDraw(CDC *pDC)

    {

    CPen penBlack; //構(gòu)造MFC CPen對(duì)象

    if (penBlack.CreatePen(PS_SOLID, RGB(0, 0, 0)))

    {

     

    CPen *pOldPen = pDC->SelectObject(&penBlack)); //選進(jìn)設(shè)備表,保存原筆

    …

    pDC->SelectObject(pOldPen); //恢復(fù)原筆


     

     

    }else

    {

     

    …

    }

    }

    和在SDK下有一點(diǎn)不同的是:這里沒有DeleteObject。因?yàn)閳?zhí)行完OnDraw后,棧中的penBlack被銷毀,它的析構(gòu)函數(shù)被調(diào)用,導(dǎo)致DeleteObject的調(diào)用。

    還有一點(diǎn)要說明:

    pDC->SelectObject(&penBlack)返回了一個(gè)CPen *指針,也就是說,它根據(jù)原來PEN的句柄創(chuàng)建了一個(gè)MFC CPen對(duì)象。這個(gè)對(duì)象是否需要?jiǎng)h除呢?不必要,因?yàn)樗且粋€(gè)臨時(shí)對(duì)象,MFC框架會(huì)自動(dòng)地刪除它。當(dāng)然,在本函數(shù)執(zhí)行完畢把控制權(quán)返回給主消息循環(huán)之前,該對(duì)象是有效的。

    關(guān)于臨時(shí)對(duì)象及MFC處理它們的內(nèi)部機(jī)制,將在后續(xù)章節(jié)詳細(xì)討論。

    至此,Windows編程的核心概念:窗口、GDI界面(設(shè)備描述表、GDI對(duì)象等)已經(jīng)陳述清楚,特別揭示了MFC對(duì)這些概念的封裝機(jī)制,并簡(jiǎn)明講述了與這些Windows Object對(duì)應(yīng)的MFC類的使用方法。還有其他Windows概念,可以參見SDK開發(fā)文檔。在MFC的實(shí)現(xiàn)上,基本上僅僅是對(duì)和這些概念相關(guān)的Win32函數(shù)的封裝。如果明白了MFC的窗口、GDI界面的封裝機(jī)制,其他就不難了。

    (審核編輯: 智匯小新)

    聲明:除特別說明之外,新聞內(nèi)容及圖片均來自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認(rèn)為內(nèi)容侵權(quán),請(qǐng)聯(lián)系我們刪除。

    紫川动漫在线观看免费完整版| 国产三级在线一区二区三区| 最新97在线视频资源| 亚洲一区二区嗯好爽快点| 亚洲综合熟女久久30p| 夜夜撸夜夜干夜夜操| 人妻在线一区二区三区| 熟妇人妻一区二区三区| 人妻熟女中文字幕电影| 97超碰在线资源总站 | 日本一区二三区好的精华液| 国产男女激情视频一区| 色yeye香蕉人妻凹凸一区二区| 日本太黄视频免费看| 日本阿v片中文字幕在线| 夜夜色视频在线观看| 91超碰在线播放视频| 精品99久久久久久久久| 国产女主播av在线播放观看| 精品视频在线观看剧情| 精品黑丝袜一区二区三区| 网友自拍+人妻丝袜+制服诱惑| 在线观看免费的黄色片| 在线观看的a站视频| 333kkkk·com99久久| 欧美日本一区二区三区在线观看| 91精品一区二区三区蜜桃| 欧美欧美欧美欧美欧美欧美| 欧美口爆吞精一区二区三区| 一级特黄夫妻生活大片| 国产又粗又猛又大爽又黄香借| 日本亚洲综合伊人久久| 中文字幕av不卡一区二区| 青青青在线视频免费观看手机版| 老窝鸭av一区二区三区| 久久久精品欧美一区二| 亚洲av狠狠的爱一区二区| 8x8x国产在线观看一区二区| 2021国产麻豆剧传媒精品入口| 在线观看免费精品一区| 日本人妻偷人妻中文字幕| 天天日天天操天天干天天舔天天射| 人妻出轨av中文字幕| 久久久亚洲av成人网人人| 宝贝腿开大点我添添公漫画| 青青青在线视频免费观看手机版 | 在线视频播放免费网站| 日本熟妇三十熟女精品区| 狠狠躁夜夜躁人人爽天天BL| 成年永久免费播放平台| 日韩人妻少妇av电影| 欧美日韩国产免费福利| 97超碰在线中文字幕精品| 国产最好看的特效大片av| 韩国女主播一区二区福利视频| 凹凸视频这里只有精品| 天天操,天天射,天天日| 青青色国产在线视频网站| 亚洲人妻一区二区三区久久精品| 国产老女人av一区二区三区| 日本超清有码在线观看| 77777色婷婷av一区二区三| 91瑟瑟视频在线观看| 91精品国产在热久久| 韩国的黄萝卜是怎么腌制的| 天天操日日干夜夜操| 中文字幕亚洲精品熟女少妇| 色婷亚洲五月在线观看| 日本成人av在线免费看 | 天天日天天操天天干天天舔天天射| 成年人午夜网站在线播放| 77字幕网77中文字幕| 91精品综合一区二区三区| 97超碰资源在线播放| 欧美日韩中文国产一区| 九色91蝌蚪porn| 久久精品亚洲一区二区三| 99久久精品岛国免费黄色网| 夜夜色视频在线观看| 啪啪啪1000国产精品| 人妻人妻干干干干人妻网站| 日本丰满少妇毛茸茸| 中文字幕+乱码+中文| 中文字幕超碰18区| 美女被鸡操黄片入口| jizz成人在线视频| 91精品久久一区二区| 韩国电影年轻的妈妈7| 国产主播在线露脸观看| 亚洲码和欧洲码的尺码| 色婷婷综合久久精品一区二区三区| 精品少妇在线观看视频| 丰满熟妇人妻一区二区三区| 好几个美女吃我大鸡吧射嘴里| 久久久亚洲av成人网人人 | 蜜桃黄视频在线观看| 中文幕av一区二区三区佐山爱| 福利动态视频午夜日本免费| caopron在线成人免费| 亚洲中文精品第一页| 中文字幕在线观看观看av?| a在线观看免费久不卡精品| 欧美 国产 一区二区三区| 天堂av在线一区少妇| 91久久久久精品一区二区三区| 宅男视频在线观看视频| 国产无套白浆一区二区三区四区 | 91高清免费在线播放| 中文字幕超碰18区| 天天干天天谢天天操| 欧美亚洲国产第一二区| 国产精品久久久久久电| 国产黄色片在线观看网站| 日本久道久久综合狠狠老| 无套内射黑丝美女91| 最近免费中文字幕日韩| 中文字幕不卡在线视频极品| 动漫黄网站在线观看| 91久久精品视频地址| 欧美大屁股撅起来射精视频| 中文字幕久久五月天| 色综合人妻中文字幕| 4438x视频在线| 人妻少妇久久中文字幕密拍| 人妻精品无码一区二区三区百花 | 在线不卡无毒你懂得| 午夜dj在线观看免费完整视频| 特黄特黄的日韩爽大片| 亚洲成电影在线观看青青| 亚洲综合精品天堂丁香芒果| 91黄色大全免费观看| 最近免费中文字幕日韩| 中文字幕激情亚洲精品 | 天堂av在线男女av| 在线免费观看国产欧美日韩| 最近最新高清欧美日韩中文字幕| caopron在线成人免费| 人妻斩43r熟女人妻| 亚洲码和欧洲码的尺码| 亚洲av狠狠的爱一区二区| 亚洲国产精品va在线观看香蕉| 视频在线免费观看97| 日本99精品一区二区三区| 男人的鸡插入美女的小穴| 午夜一分钟视频免费在线观看| 久久精品亚洲一区二区三| 欧美丝袜办公室在线91| 少妇性感美女一区二区三区四区| 美女和猛男诱惑操逼捅鸡鸡| 91网在线视频中文字幕| 黄色片网站国产精品| 亚洲免费在线观看,| 午夜一分钟视频免费在线观看| 玩弄人妻少妇精品视频在线 | 欧美亚洲综合另类清纯自拍| 欧美国产一区二区三区在线看| 插屁眼在线免费视频| 亚洲区欧美区自拍偷拍区| 人妻精品无码一区二区三区百花 | 中文字幕亚洲精品八区| 日韩欧美亚洲第五页| 久久人人妻人人做人人爽涩爱| 久久久久久久久久二区| 亚洲av乱码国产精品观看麻豆| 色婷亚洲五月在线观看| 亚洲免费不卡一区二区三区| 国产99热这里有精品| 中文视频久久在线观看| 日本不卡网在线观看视频| 久久久com久久久com| 97人人澡人人添人人爽| 日韩 欧美 在线 第一页| 国产大全视频在线观看| 最新久久久久久久久久久| 亚洲区欧美区自拍偷拍区| 免费一级特黄特色大片88av| 国产在线成人精选视频| 91精品一区二区三区蜜桃| 日本一道免费一二三区| 国产91手机精品在线播放| 一区二区三区高清在线| 18视频在线免费播放| 国产老头视频在线观看| 男女边摸边吃奶边做视频免费看| 亚洲av无日韩毛片久久| 少妇张开腿让我爽了一夜视频| japanese国产在线播放| 精品色欲久久久青青青人人爽| 久久香蕉欧美日韩av蜜桃| 亚洲一级精品久久久蜜桃| 人妻精品无码一区二区三区百花| 久久免费视频精品8| 91av在线网址观看| 精区一品二品精区在线91| 成人涩涩小片视频日本| 免费看日本特黄特色| 18免费1000视频国产| 几把操女的逼喷水视频| 丝袜美腿av一区二区| 国产高清精品福利私拍国产写真| 亚洲伊人第一综合网| 在线视频播放免费网站| 日本国产福利视频在线观看| 99热在线这里只有精品| 免费观看亚洲欧洲在线视频| 国产亚洲高清在线观看| 人妻ol未亡人中文字幕| 大香蕉红杏在线观看| 亚洲va欧美va国产综合定档| 青青久在线观看免费视频| 制服中文丝袜国产日韩另类| 老鸭窝大视频网站a一级| 91网在线视频中文字幕| 在线观看免费a级电影| 超碰在线97观看国产| 天天草天天日天天舔| 天天插天天射天天日天天干| 欧美亚洲自拍偷拍xxx| 9久久久久久久久久久| 欧美亚洲 自拍偷拍| 国产av电影网毛片| 亚洲夫妻另类在线视频| 久久免费视频精品8| 白丝高中生被靠操在观看| 国产寡妇又爽又紧又湿视频| 欧美美女色视频免费看| 蜜桃黄视频在线观看| 天堂久久精品无码一区二区| 嫩草伊人久久精品少妇av网站| 亚洲av免费观看网站在线观看| 1234中文字幕内射在线| av中文字幕巨乳人妻| 欧美熟妇激情在线观看| 把鸡鸡伸进去的视频| 熟女俱乐部五十路 六十路| 精品久久久免费av| 国产主播在线观看一区二区| 国产精品自产拍在线观| 91九色porny蝌蚪主页| 天天操,天天射,天天日| 午夜高清在线观看免费| 亚洲地址一区二区三区四区| 国产午夜精品1区2区3区| 50岁老熟女高潮喷水了| 精品99久久久久久久久| 国产在线观看XXXXX| 精品亚洲永久免费精品网站| 色婷婷综合久久久久中文一区二区| 在线视频 中文字幕 一区二区| 国产黄片一区在线观看| 中文字幕亚洲天堂av在线| 97视频免费观看一区| 亚洲高清码在线精品av| 97人妻少妇熟女av| 91久久久人妻精品一区二区| 97精产国品一二三产区区| 亚洲和黑人特黄色片| 青青色在线视频精品观看| 熟女老骚91porn九色| 国产欧美亚洲精品第一页青草| 91麻豆精品国产综合久久久主演 | 日日av拍夜夜添久久免费老牛| 人妻少妇久久中文字幕密拍| 黄片网址在线观看视频| 日本久道久久综合狠狠老| 精品国产精品国产免费| 91九色在线视频入口| 2023天天色天天操| 久久人人妻人人做人人爽涩爱| 国产成年无码av片在线| 国产精品无码一区二| 中文字幕亚洲精品八区| 亚洲国产综合精品中文字幕 | 182tv免费福利中文字幕| 97人人澡人人添人人爽| 欧美vide0sde极品另类| 中文在线播放一区二区三区| 宝贝腿开大点我添添公漫画| 精品亚洲国产亚洲国产| 日日日日日日日夜夜夜夜夜| 日韩精品免费人成视频| 大屁股熟女少妇一区二区| 一区二区三区免费精品| 美女被鸡操黄片入口| 日韩一二三区免费播放视频| 人鱼小姐在线观看国语版字幕| 国产一级特黄aaa片做受小说| 91综合久久久久久久久久久| 4438x视频在线| 无套内谢少妇一二三四| 国产中文字幕88av| 亚洲av乱码国产精品观看麻豆| 国产又粗又猛又大爽又黄香借| 亚洲一二三区免费视频| 久久久久久久国产黄色片| 日韩在线网站一区二区三区| 国内偷拍视频在线观看| 97超碰在线资源总站 | 日韩 欧美 在线 第一页| 黄片网址在线观看视频| 最新黄色天堂av在线资源| 大香蕉太香蕉在线免费看| 日本激情在线看一区二区三区| 日韩不卡免费一区二区三区视频 | 不戴胸罩的人妻电影| 尤物在线免费视频观看| 亚洲另类校园春色小说| 久久精品亚洲一区二区三| 人妻天天爽夜夜爽2区蜜a∨| 好吊一区二区三区视频| 538精品新视频在线观看| 亚洲午夜在线亚洲午夜在线| 国产91手机精品在线播放| 五月婷婷丁香中文字幕亚洲一区| 欧美熟妇激情在线观看| 加勒比人妻av系列专区| 日本在线观看公司入口视频| 国产97在线观看视频| 狠狠色丁香久久综合频道日韩| av中文字幕 中文字幕第一页| 亚洲一区二区三区在线直播| 蜜桃视频app网站入口| 无套内射黑丝美女91| 91久久久久久久电影| 午夜国产精品福利一二| 蜜桃黄视频在线观看| 久久古典武侠第1页777| 清纯国模自拍视频在线观看| 中文字幕在线观看操穴视频| 91精选一区二区三区四区| 偷拍亚洲图片欧美另类| 韩国美女视频在线观看18+| 最新黄色天堂av在线资源| 欧美激情免费观看一区二区| 日韩欧美 亚洲国产| 亚洲高清码在线精品av| 欧美极品少妇αv另类| 亚洲最快不卡av综合| chinese熟女熟妇1老熟妇| 国产欧美亚洲精品第一页青草| 亚洲最大第八色在线视频| 精品国产专区91精品| 一区二区三区四区蜜桃在线| 成人欧美久久久久美婷婷| 欧美老熟妇在线一区二区三区| 青青草毛片在线观看| 免费网站黄色在线观看不卡| 国产又长又粗又硬又爽免费视频| 人妻蜜臀久久久av免费| japanese国产在线播放| 男生捅女生逼的免费视频软件| 大香蕉太香蕉在线免费看| 麻豆电影国产一区在线观看| 9999国产精品免费| 蜜桃av在线观看网站| 好大好粗好爽好黄c黄片| 人视频一区二区三区| 视频二区视频四区中文| 日韩美女av电影网| 亚洲国产伦理久久精品| 日本国产一区二区三区视频| 精品麻豆国产综合在线9| 男插女下面真人视频| 亚洲日韩色欧另类欧美色吊丝| 日本mm一区二区三区高清| 日本不卡视频免费播放| 熟妇av一区二区三区| 强d乱码中文字幕熟女导航| 涩爱av一区二区在线播放视频| 亚洲欧洲久久av日日更新| 日韩在线网站一区二区三区| 国产免费午夜精品视频| 成年人在线观看福利视频| 亚洲第二页欧美视频| 50岁老熟女高潮喷水了| 精品国产不卡在线观看免费| 久久99国产精品久久99蜜月| 亚洲在线中文字幕av| 亚洲av蜜臀在线观看| 性色蜜月av一区二区三区| 91久久久久久久电影| 国产av办公室丝袜在线| 99精品一区在线观看| 黄色av网址免费观看| 久久精品aⅴ无码中文字字幕蜜桃| 365日日夜夜精品视频| 91精品视频在线观看999| av资源最新版在线天堂| 精品国产污网址在线观看| 欧美激情免费观看一区二区| 亚洲经典国产一区二区三区 | 丝袜美腿av一区二区| 青青操一区二区三区| 亚洲熟女国产午夜精品| 91成人在线观看免费| 91免费在线播放视频| 青青草国产免费在线观看| 国产亚洲精品久久久久久电影 | 久久综合精品五月天| 精品人妻天天爽夜夜爽| 亚洲综合网男人的天堂| 欧洲亚洲国产永久精品| 欧美国产亚洲自拍偷拍| 91九色在线视频入口| 成人网视频欧美在线观看| 国产一二三区在线播放| 午夜动漫福利在线观看| 青青青久免费在线视频| 免费观看黄色视频啊小穴啊| 亚洲天堂av成人在线观看| 国产无套水多大学生性色AV| 欧美日韩黄色aaa| 亚洲综合熟女久久30p| 亚洲精品一二三在线观看| 国产在线成人精选视频| 欧美老熟妇在线一区二区三区| 欲求不满的邻居人妻一区二区三区| 男人把女人桶到爽午夜视频| 91综合久久久久久久久久久| 91精品丝袜一区二区| av在线视频观看免费| 国内老熟妇精品露脸视频| 国产三级在线一区二区三区| 国产亚洲精品137片内射| 欧美亚洲变态另类在线观看| 免费在线一区二区视频| 亚洲成电影在线观看青青| 人视频一区二区三区| 男人和女人哪个更色| 男女视频一区在线观看| 视频一区二区亚洲欧美| 国产亚洲精品137片内射| 国产熟女福利资源导航| 国产精品不卡在线播放| 在线看不卡日本av| 网友自拍+人妻丝袜+制服诱惑| 免费观看男人操逼的操女人的| 日本xxxxx久久| 日本在线不卡视频播放| 中文字幕_第1页_绿茶av| 91九色成人原创视频| 娇小型av优女大全| 秋霞网av一区二区三区中文字幕| 国内人妻自拍视频在线| 熟妇av一区二区三区| 欧美黑人一级性视频| 日本人妻偷人妻中文字幕| 精品人妻人人做人碰人人爽| 亚洲人成网站在线播放| 亚洲国产成人精品久久久久久久久| 欧美欧美欧美欧美欧美欧美| 中文字幕99精品一区| 伊人网av在线观看| 亚洲制服丝袜日韩欧美制服| 亚洲精品一二三在线观看| 丰满老熟女av在线| 国产大女露脸自拍大叫| 色yeye香蕉人妻凹凸一区二区 | 清纯国模自拍视频在线观看| 97超碰人人澡香蕉| 一卡二卡成人久久精品| 人妻少妇精品视中文字幕国语| 免费精品国产人妻国语| 亚洲美女啪啪邪恶视频| 精品一区二区三区别视频 | 天天干天天插天天透| 中文字幕av一区二区三区不卡| 欧美亚洲国产第一二区| 在线观看视频一区二区精品| 中文幕av一区二区三区佐山爱| 国产精选黄片免费观看| 免费一区二区三区香蕉| 亚洲午夜短视频在线| 成年大片免费视频播放二级| 密臂av性久久久久蜜臂av| 三级大尺度无码视频| 精品少妇人妻大乳av| 天天爱天天做天天舔| 最新中文字幕不卡av| 天天操日日干夜夜射| 欧美色高清vvvvvv| 中文字幕乱码人妻在线观看| 91popny熟女九色| 伊人成人综合小说网| 全国最大成人 中文字幕| 人妻出轨av中文字幕| 中年美熟妇与少年的激情| 91久久人澡人妻天天做天天爽| 欧美人妖一区二区三区| 91精品丝袜久久久| 亚洲插美女综合av| 亚洲精品av成人在线观看| 国产av在线播放免费| 美女厕所撒尿偷拍视频| 男生捅女生逼的免费视频软件| 男人插女人阴穴的视频| 亚洲 自拍 色综合图区av网站| 亚洲一区二区蜜乳av| 人妻少妇精品视频在线观看| 蜜臀av在线地址一地址二| 天天草天天日天天舔| 天天操,天天射,天天日| 被大鸡吧操骚B真爽视频| 字幕人妻一区二区视频| 女同性ⅹxx女同hd偷拍| 免费观看在线黄色大片| 色五月婷婷综合国产在线| 日本黄色an久久一区| 制服诱惑,日韩情色| 97香蕉在线17c| 蜜臀av在线地址一地址二| 亚洲美女福利视频免费| 中文字幕av不卡一区二区| 午夜天堂网在线观看资源网站| 在线免费观看国产欧美日韩| 亚洲第一中文视频 | 日本一区二区三区综合网| 国产精品国产自产拍在线| 中文字幕欧美人妻精品精品| 国产精品久久久久久一级精品| 在线观看免费的黄色片| 大胸美女黄网站色片大全亚洲| 欧美性感美女高潮视频| 91青青青青艹视频在线观看| 欧美码一二三区线观看| 人视频一区二区三区| 在线观看免费精品一区| 国产一区二区精品调教 | 欧洲老妇人一区二区三区| 日产国产亚洲精品系列p| 最新中文字幕不卡av| 亚洲的国产中文字幕的av| 中文字幕_第1页_绿茶av| 插美女阴道流水视频| 免费观看在线黄色大片| 亚洲av最新资源在线| 91九色成人原创视频| 熟妇高潮喷水在线120p| 国产主播在线露脸观看| 国产精品视频中文无码| 久久香蕉欧美日韩av蜜桃| 一本久道久久综合狠狠躁| 国产综合无码视频呢在线| 国产又粗又猛又大爽又黄香借| 亚洲欧美日本高清在线观看| 深夜释放成人污污污| 中文字幕激情亚洲精品| caoporn97超碰| 少妇18禁久久yy| www国产精品人妻| 草莓视频精品在线观看| 亚洲短视频自拍偷拍| 亚洲熟女国产午夜精品| 中文av字幕在线观看| 婷婷色在线免费视频| 石原莉奈一区二久久影视| 精品国产一区二区三区欧美精品| 人成免费视频一区二区三区| 久久人人妻人人做人人爽涩爱| 午夜动漫福利在线观看| 蜜臀国产精品久久久久久 | 中文字幕在线精品的视频| 玩弄放荡人妻少妇免费视频| 亚洲的国产中文字幕的av| 在线亚洲视频免费看| 极品美女少妇高潮喷水| 久久精品国产亚洲av四区| 亚洲av乱码一区二区三区观影| 黄色的视频黑丝网站| 中文乱码字幕人妻精品| chinese熟女熟妇1老熟妇| 国产主播av在线观看| 国产在线精品免费视频| 国产不卡剧情在线观看| 经典视频一区二区三区| 成人免费午夜精品一区二区| 日韩欧美 亚洲国产| 国产精品久久乱码无人区| 日日夜夜精品视频观看| 亚洲国产精品午夜福利久久| 99国产精品视频播放| chinese熟女熟妇1老熟妇| 91精品国语对白人妻刺激使劲| av亚洲天堂中文字幕| 中文字幕不卡在线视频极品| 少妇人妻系列500视频| 中文字幕第一区高清av| 日韩中文字幕色资源| 啪啪啪在线免费视频| 亚洲精品一二三在线观看| 亚洲精品av成人在线观看| 中文字幕少妇av一区二区三区 | 欧美日韩一区二区a∨视频| 欧美口爆吞精一区二区三区| 国产91边对白在线播放| 福利动态视频午夜日本免费| 好吊一区二区三区视频| 四十路の五十路熟女网址| 日韩欧美激情啪啪啪| 日本国产一区二区三区视频| 狠狠添狠狠添狠狠添免费出高潮水 | 日产精品免费一区二区三区| 黄片一级黄片一级黄片| 男人的天堂av成人网| 18视频在线免费播放| 亚洲人成网站在线播放| 国产91边对白在线播放| 97精品视频久久久久| 色偷偷东京热男人的天堂| 日本乱理三级在线观影视频| 黑人中出日本人妻系列| 久久99国产精品久久99蜜月| 中文字幕 av 在线| 人妻少妇精品视频专区专区| 99久热精品视频在线播放| 亚洲国产综合精品中文字幕| 亚洲激情四射在线观看视频| 国产精品亚洲精品久| 婷婷热re99久久精品国产 | 91九色p精品久久久| 日韩av在线免费观看中文字幕| 青草神马视频在线网址| 亚洲av高清一区二区三区色| 精品国产不卡在线观看免费| 五十六十日本老熟妇牲| 91大神长腿美女视频在线观看| 福利动态视频午夜日本免费| 97人妻少妇熟女av| 小少妇久久久久久久| 日韩精品视频啊啊啊| 影音先锋婷婷五月青青草视频在线| 日本aaaaa特黄| 中文字幕99精品一区| 中文乱码字幕人妻精品| 天天干天天做天天摸| 亚洲第二页欧美视频| 国产亚洲av网址大全| 久久久精品国产综合| 韩国三级国产精品一区| 国产精品久久久久久一级精品| 日本激情内射一区二区三区| 国产精品亚洲av国产| 黄色小网站在线免费观看| 久久久久久久岛国免费播放| 91免费一区二区久久| 国产在线观看XXXXX| 自拍偷拍亚洲色图经典三级| 亚洲中文有码字幕青青| 11yyy国产成人综合在线观看| 国产午夜精品1区2区3区| 中文字幕av一区二区三区不卡| 四十路の五十路熟女网址| 国产55夜色66夜色男人的天堂| 青娱乐休闲在线观看视频| 亚洲无码免费一二三区视频 | av天堂中文版www在线| 欧美一卡二卡3卡4卡无卡十| 99精品在线免费观看| 97视频免费观看一区| 日本丰满人妻免费电影| 黑人巨大欧美一区二区视频| 亚洲人妻一区二区三区久久精品| 中文字幕+乱码+中文| 亚洲69视频在线观看| 在线观看成人欧美一区| 在线视频 中文字幕 一区二区| 久久久久久久久久99蜜桃| 色婷婷综合久久精品一区二区三区| 91极品尤物国产在线播放| 玩弄放荡人妻少妇免费视频| 亚洲伊人第一综合网| 7799精品视频免费观看| 日本少妇不卡狠狠狠| 国产呻吟揉丰满一区三六区| 亚洲 欧美视频在线| 免费av在线亚洲精品| 色视频免费在线观看高清| 欧美午夜理论片1000在线播放| 亚洲欧美激情人妻人妻综合| 日本中文字幕第三区| caoporm超碰97| 日本不卡网在线观看视频| 亚洲国产长腿丝袜av天堂| 男女啪啪自拍露脸视频| 91精品久久久久久久免费看| 99精品一区在线观看| 国产欧美亚洲精品第一页青草| 中文亚洲字幕国产剧情| 超碰青青草原免费在线观看97| 久久热免费在线观看视频| 一区二区三区高清在线| 欧美图区一区二区三区| 欧美美女色视频免费看| 精品久久久久久成人 | 麻豆精品传媒在线播放| 亚洲综合一区二区在线视频| 人妻蜜臀久久久av免费| 在线播放三级黄色日韩av| 在线观看国产剧情av| 老司机带带我视频完整版| 亚洲精品中文字幕原千岁| 91黄色大全免费观看| 日产精品免费一区二区三区| 青青草手机免费在线视频| 精品少妇人妻大乳av| 亚洲中字幕日产AV片在线| 日韩九色pron国产日韩 | 亚洲精品日韩中文久久91| 日本阿v片中文字幕在线| 日日日日日日日夜夜夜夜夜| 亚洲风情 国内自拍av| 久操高清在线免费视频| 日本一道免费一二三区| 一级毛片试看三分钟| 美女少妇一区二区久久久| 91tsav人妻国产| 欧美大香蕉一区二区三区| 又粗又硬又黄又色的| 在线观看免费a级电影| 日日夜夜精品视频观看| 日本最新区免费中文字幕| 在线观看国产剧情av| 韩国美女主播福利在线 | 亚洲91色精品一区二区| 亚洲欧洲久久av日日更新| 日韩在线网站一区二区三区| 巨大屁股女教师极品白嫩少妇| 日韩人妻无码一区2区3区| 精品一区二区三区视频观看| 亚洲综合精品天堂丁香芒果| 天天射天天舔天天看| 亚洲av乱码国产精品观看麻豆| 桃子av在线免费观看| 少妇人妻肉欲短视频| av亚洲欧美一区二区| 老鸭窝最新在线视频| 成年人免费视频网站在线播放| 视频一区 欧美情色| 蜜桃精品噜噜噜av| 人人妻,人人干,在线| 中文字幕久久五月天| av中文字幕 中文字幕第一页| 日本国产精品第一页久久| 欧美精品色呦呦首页| 日本伊人中文字幕在线| 初撮日本五十路人妻| 好吊一区二区三区视频| 凹凸视频这里只有精品| 六十六节医疗保健操全套| 色屁屁一区二区三区视频国产| 欧美 亚洲 国产 日韩一| 日韩视频在线观看四区| 初撮日本五十路人妻| 亚洲短视频自拍偷拍| 欧美午夜免费福利视频| 性美女毛片久久a区| 日韩中文字幕一级乱码在线亚洲| 中文字幕乱码熟女人妻水蜜桃| 成人av影视一区二区三区| 久久久久久久岛国免费播放| 一区二区三区日韩高清| 人人妻人人澡人人爽dv| 亚洲图片av伦理三级| 3p人妻一区二区三区| 欧美成人中文字幕在线视频| 草草影院色视频免费在线观看| 亚洲国产成人一区二区久久久| 伊人激情综合视频网| 天天射天天舔天天看| 免费高清视频亚洲熟女| 在线 国产区 视频| 91精品久久久久久久99蜜臀| 国产三级在线一区二区三区 | 美女爽爽午夜作爱视频1314| 在线步兵一区二区三区| 亚洲另类校园春色小说| av熟女40到50岁名字| 嗯嗯呐插进来嘛吸奶| 在线观看免费a级电影| 野花日本高清在线观看| 天天日天天干天天啪天天射| 女人的小鸡鸡真人免费视频| 影音先锋婷婷五月青青草视频在线| 久久久久免费特级黄片| 少妇视频播放在线播放免费观看| 弄爽新婚人妻第五部美妙人妻| 国产自拍福利视频在线观看| 中文字幕av影片免费在线观看| 国产一级免费观看av网站| 午夜福利无码一区二区三区| 国产一二三区在线播放| 激情黄色激情综合久久| 亚洲国产精品成人综合色| 精区一品二品精区在线91| 中文在线天堂中文在线天堂| 久久久久久久岛国免费播放| 国产成人亚洲一区二区三区| 国产不卡剧情在线观看| 五月天中文字幕亚洲| 亚洲情色成人一二三区| 在线一区三区精品视频| 最新中文字幕不卡av| 人人妻人人澡人人爽dv| 欧美大屁股撅起来射精视频| 中文字幕欧美人妻精品精品| 中文字幕亚洲精品熟女少妇 | 国产精品一级片免费看| 在线视频成人青青草久热| 51成人看片免费软件| 亚洲中文有码字幕青青| 欧美亚洲变态另类在线观看| 国产综合无码视频呢在线| 人妻精品无码一区二区三区百花 | 韩国的黄萝卜是怎么腌制的| 国内精品视频免费观看视频| 在线不卡无毒你懂得| 日本中文字幕第三区| 91精品视频在线观看999| 欧美区一区一区三区| www人妻一区二区| 亚洲综合精品天堂丁香芒果| 九色视频在线观看网址| 亚洲精品日韩中文久久91| 六月丁香六月在线视频| 欧美日韩黄色aaa| 国产午夜在线观看不卡| 亚洲av综合在线观看免费| 啪啪啪1000国产精品| 草草影院色视频免费在线观看| 精品一区二区三区最新| 午夜小视频 在线观看| 在线免费观看精品一区| 亚洲av乱码一区二区三区四区| 超级碰免费人妻97| 九九热在线视频观看最新| 亚洲大胆综合在线观看| 超碰97人妻中文字幕| 富婆按摩高潮一区二区三区91| 国产老女人av一区二区三区| 2017夜夜操天天操| 国产又黄又高潮又a的视频| 亚洲男人天堂2025| 午夜高清在线观看免费| 天天摸天天天天日少妇av| 裸体一区二区三区av| 人妻在线一区二区三区| 蜜臀国产精品久久久久久| 欧美成人中文字幕在线视频| 亚洲午夜激情视频在线播放| xxx一区二区三区在线观看| 久久香蕉欧美日韩av蜜桃| 亚洲一区二区婷婷久久| 92大香蕉一区二区三区| 精品国产精品国产免费| 日本少妇的秘密视频| 亚洲av熟女av熟女| 亚洲中字幕日产AV片在线| 欧美精品色呦呦首页| 插美女阴道流水视频| 精品久久久中文字幕熟女| 久久精品国产亚洲av四区| 国产交换乱淫99视频| 国产大女露脸自拍大叫| 熟女人妻伊人蜜桃视频| 啪啪啪在线免费视频| 久久久亚洲av成人网人人| 亚洲AV永久青草无码士清品| 9999国产精品免费| 久久亚洲av午夜福利精品一区| 日韩精品免费人成视频| 大屁股熟女少妇一区二区| 中国男人肏女人大屄的视频| 日韩三级 欧美精品| 99久久99久久综合| 欧美一区二区三区在线爱爱| 熟妇av一区二区三区| 中文字幕一区二区三区人妻 | 国产又粗又猛又大爽又黄香借| 人妻在线一区二区三区| 亚洲一级中文字黄色片| 一区二区三区四区无人区| 朴妮唛无删减福利在线观看| 美女啪啪啪免费网站视频| 大伊香蕉精品一区视频在线| 夜夜躁爽日日躁狠狠躁一区| 97超碰人人澡香蕉| 91瑟瑟视频在线观看| 91久久精品视频地址| 国内人妻自拍视频在线| 人妻少妇精品视中文字幕国语| 欧美日韩性生活视频在线| 精品麻豆国产综合在线9| 国产精品福利视频资源| gogo大尺度二区三区| 17c日韩在线观看| 天天干天天操天天射天天日| 国产女人AAA级久久久级| 欧美一卡二卡3卡4卡无卡十| 日本太黄视频免费看| 中文字幕福利在线观看| 草莓视频精品在线观看| 国产男女激情视频一区| 欧美色高清vvvvvv| JK白丝喷白嫩嫩久久久| 国产在线观看av专区| 丝袜美腿av一区二区| 日本一卡不带卡的视频| 三级黄色在线播放网站| 欧美人妖一区二区三区| 国产黄色片在线观看网站| 91九色p精品久久久| 欧美人体一区二区视频| 黄色av网址免费观看| 嫩草伊人久久精品少妇av网站| 日韩激情小说在线播放| 日本午夜色视频在线观看| 亚洲大胆综合在线观看| 男人把女人桶到爽午夜视频| 午夜福利无码一区二区三区| 人妻少妇精品视中文字幕国语| 日韩人妻无码一区2区3区| 久久古典武侠第1页777| 大香蕉在线福利导航| 日本太黄视频免费看| 97人妻少妇熟女av| 国产亚洲高清视频精彩在线播放| 强d乱码中文字幕熟女导航| 人人妻,人人干,在线| 欧美成人性生活一级片| 中文字幕日韩一二区| 国产精品国产自产拍在线| 亚洲黄色片免费在线| 国产成年无码av片在线| 精品国精品国自产在产国产| 啪啪啪啪啪啪啪啪啪日本| 综合日韩人妻一区二区三区| 白丝高中生被靠操在观看| 国产av办公室丝袜在线| 欧美午夜免费福利视频| 亚洲高清码在线精品av| 日韩一区=区三区四区| 色视频在线观看在线| 欧美视频免费在线看| 黄色av观看一区二区三区| 制服诱惑,日韩情色| 成人av黄片免费在线观看专区 | 在线视频播放免费网站| 91九色popny人妻| 亚洲91精选一区二区在线 | av天堂中文版www在线| 青青国产的视频在线播放| 精品亚洲永久免费精品网站 | 国产亚洲精品a77777| 草莓视频精品在线观看| 99久久国产综合精品五月天| 秋霞一区二区三区小说| 国产精选黄片免费观看| 爱毛片在线成人免费看| 啊!用力操我!好爽| 国产 福利 一区二区| AV成人国产免费久久精品| 自拍偷拍av一区二区三区| www人妻一区二区| 91精品丝袜一区二区| 朴妮唛无删减福利在线观看| 亚洲天堂av影视在线| 色视频网在线视频观看| 色婷婷综合久久精品一区二区三区| 91精品人妻丰满熟妇| 日本黄色an久久一区| 亚洲va欧美va人人爽2| 少妇18禁久久yy| 人妻少妇麻豆中文字幕久久精品| 中文字幕亚洲精品熟女少妇| 熟女成人国产精品视频| 欧美精品日韩不卡免费| 超碰国产极品尤物在线| 91麻豆精品国产综合久久久主演| 弄爽新婚人妻第五部美妙人妻| 日韩一二三区免费播放视频| 亚洲黄色小视频网址| 亚洲天堂av在线免费看| 初撮日本五十路人妻| 日韩亚洲欧美中文在线电影| 日本jizzjizz少妇| 男男小视频在线观看| 天天透天天插天天日| 五十二老熟女高潮嗷嗷叫| 少妇视频播放在线播放免费观看| 美女厕所撒尿偷拍视频| 国产精品免费观看av| 宝贝腿开大点我添添公漫画| 日韩级视频在线播放| 欧美一区二区三不卡| 日日夜夜操国产av| 秋霞一区二区三区小说| 蓝莓小视频在线观看| 亚洲综合熟女久久30p| 99精品一区在线观看| 亚洲69视频在线观看| 桃子av在线免费观看| a区精品视频在线观看| 中年美熟妇与少年的激情| 日韩亚洲中文在线视频| 欧美色高清vvvvvv| 最近最新高清欧美日韩中文字幕 | 韩国女主播一区二区福利视频| 国产高清激情在线视频| 男女啪啪自拍露脸视频| 青青操在线超碰传媒| 国产55夜色66夜色男人的天堂| 视频一区二区亚洲欧美| 朴妮唛无删减福利在线观看| 超级黄的有肉视频在线观看| 国产av在线播放免费| 少妇视频播放在线播放免费观看| 国产 欧美 五月 激情| 操骚逼啊啊啊叫一区二区三区| 99热在线这里只有精品| 天堂久久精品无码一区二区| 九九热在线视频观看最新| 亚洲熟女国产午夜精品| 91瑟瑟视频在线观看| 日韩高清亚洲精品国产欧美| 亚洲人妻无吗中文字幕| 久久精品aⅴ无码中文字字幕蜜桃| ntr人妻セックス在线| 在线精品视频这里只有精品| 制服乱伦强奸中文字幕| 熟女人妻五十路x50| 中文av字幕在线观看| 色偷偷东京热男人的天堂| 精品99久久久久久久久| 漂亮人妻口爆深喉免费视频| 九九re热这里只有精品视频| 日本激情内射一区二区三区| 日本丰满老熟妇bbw| 日本丰满少妇毛茸茸| 天天干狠狠插夜夜操| 免费一区二区三区香蕉| 免费观看黄片视频91| 国产精品v欧美精品v亚洲精品| 紫川动漫在线观看免费完整版| 男人的天堂在线免费av| 成人教育av在线网站| ass亚洲熟妇熟女pics| 淫色网亚洲av日韩av| 91社区男人都懂的网站| 天堂av中文官网在线| 卡通动漫中文字幕在线观看| 欧美性感美女高潮视频 | 最近的中文字幕第二页| 成人av在线播放老熟妇| 日韩精品视频啊啊啊| 中文字幕一二区二三区人妻专区 | 日韩级视频在线播放| 久9热精品视频在线播放| 好大好粗好爽好黄c黄片| 18禁止看免费120秒试看| 2020最新中文字幕在线| 色老汉av一区二区三区| 中文av字幕在线观看| 亚洲精品一区二区三区av| 99久久精品岛国免费黄色网| 亚洲69视频在线观看| 国产av办公室丝袜在线| 最近免费中文字幕日韩| 中国精品视频在线观看一区二区| 亚洲欧美清纯另类图片小说| 国内偷拍视频在线观看| 日韩人妻无码一区2区3区| 狂野欧美激情性xxxx| 成人涩涩小片视频日本| 欧美区一区一区三区| 久久久精品国产亚洲av水| 国产91色婷婷手机在线| 女高中生第一次破苞av| 欧美一点不卡视频在线观看| 欧美亚洲变态另类在线观看| av在线视频观看免费| 四季亚洲中文专区av| 黄色小网站在线免费观看| 在线国产小视频麻豆| 精品久久久福利国产| JK白丝喷白嫩嫩久久久| 天天摸天天天天日少妇av| 日本久久久久久久久人妻视频| 免费一级特黄特色大片88av | 日韩专区欧美专区第五页| 国产美女在线极品美女网站| 都市激情亚洲春色男人皇宫| 人鱼小姐在线观看国语版字幕| 国产无套白浆一区二区三区四区 | 78m中文字幕在线观看| 中文字幕熟女人妻丝袜电影| 白丝大胸美女操批内射视频| 视频二区视频四区中文| 欧美老熟妇乱子伦视频在线观看 | 麻豆精品传媒在线播放| 天天透天天插天天日| 色丁香国产精品综合久久| 麻豆精品传媒在线播放| 9999精品久久久久| 一区二区三区四区无人区| 国产精品久久久久久一级精品| 欧美日韩黄色aaa| 日本伦精品一区二区三区免费| 7799精品视频免费观看| 黄色片网站国产精品| av一区二区在线播放色婷婷精品| 欧美大香蕉一区二区三区| 九九热在线视频观看最新| 精品久久久中文字幕熟女| 久久亚洲av午夜福利精品一区| 欧美老熟妇乱子伦视频在线观看| 91精品国产在热久久| 亚洲精品无码中文字幕专区| 推荐国产福利一区二区三区| av蜜臀免费在线观看| 亚洲清纯国产com| 水蜜桃在线视频一区二区三区| 午夜精品久久十八禁| 男人午夜视频在线观看| 免费在线观看成人激情视频| 久久中文字幕永久第一页| 黄免费在线观看视频| 中文字幕人妻不卡久久| 国产成年无码av片在线| 国产91手机精品在线播放| 亚洲大胆综合在线观看| 夜夜色视频在线观看| 手机在线看日韩av资源| 成人网视频欧美在线观看| 人妻性奴隶免费观看| 欧美日韩中文国产一区| 中文字幕亚洲精品熟女少妇| 亚洲和黑人特黄色片| 成年免费毛片视频不卡| 成人两性色午夜视频免费88AV| 一级少妇精品久久久久| 熟女人妻五十路x50| 91精品青草福利久久午夜| 男女视频一区在线观看| 国产精品v欧美精品v亚洲精品| 97超碰在线资源总站 | 国产 福利 一区二区| 97超碰资源在线播放| 国产高清精品福利私拍国产写真| 免费看亚洲av的网站| 黄片激情视频国产免费| www国产精品人妻| 91av在线网址观看| 欧美视频一区二区三区三州| 老司机带带我视频完整版| 中国黄页毛片免费视频| 成人教育av在线网站| 亚洲欧洲久久av日日更新| 亚洲国产精品成人综合色| 美女福利在线免费观看| 国产九色视频在线观看| 成人两性色午夜视频免费88AV| 国产大女露脸自拍大叫| 水蜜桃在线视频一区二区三区| 草草影院色视频免费在线观看| 91激情视频在线视频| 亚洲mv在线免费观看| 欧洲老妇人一区二区三区| 经典视频一区二区三区| 亚洲精品乱码久久久久99| 精品一区二区三区最新| 福利视频一二三在线视频免费观看| 17c日韩在线观看| 超碰国产极品尤物在线| 亚洲一区二二三区在线gk| 色婷亚洲五月在线观看| 2017夜夜操天天操| 五月激情网激情五月| 中文字幕成熟丰满人妻| 漂亮人妻久久被公侵犯| 亚洲天堂av影视在线| 欧美大屁股撅起来射精视频| 亚洲mv在线免费观看| 天天干狠狠插夜夜操| 亚洲天堂中文字幕手机在线 | 好色av一区二区三区四区| 插美女阴道流水视频| 国产主播av在线观看| 精品一区二区三区最新| 中文字幕乱码熟女人妻水蜜桃| 午夜福利92一区二区三区久久| 人妻少妇精品视中文字幕国语 | dorcelclub欧美成人| 亚洲大胆综合在线观看| 国产高清 国产av| 忘忧草精品久久久久久久高清| 色视频免费在线观看高清| 免费午夜在线看福利片| 午夜国产精品福利一二| 91久久久久久久蜜桃| 人妻天天爽夜夜爽2区蜜a∨| 精品99久久久久久久久| 亚洲清纯国产com| 色综合天天综合网天天狠天| 在线视频在线观看你懂的| 91免费一区二区久久| 精品国精品国自产在产国产| 午夜少妇成人人妻av| 97se狠狠狠狠狼鲁亚洲综合色| 自拍偷拍av一区二区三区| 男人的鸡插入美女的小穴| 中文字幕亚洲专区婷婷| 亚洲精品日韩中文久久91| 在线看国产91av| 538精品新视频在线观看| 几把操女的逼喷水视频| 精品国产专区91精品| 日韩不卡免费一区二区三区视频| 91九色免费在线观看| 午夜精品婷婷午夜精品| 国产av国片精品jk制服| 国内老熟妇精品露脸视频| 激情91久久婷婷综合| 欧美成人免费观看在线看| 国内偷拍视频在线观看| 7799精品视频免费观看| 手机看日韩av大片| 色偷偷东京热男人的天堂| 免费观看在线黄色大片| 九九re热这里只有精品视频| 国产午夜精华视频在线| 999精品视频免费看| 国产av国片精品jk制服| 日本少妇的秘密视频| 国产美女在线极品美女网站| 亚洲av丝袜诱惑在线| 久久免费视频精品8| 久久久亚洲av成人网人人| 视频免费在线观看网| 中文字幕av影片免费在线观看 | 女友97年白嫩漂亮在线看| 中文字幕中文字幕在线一区| 天天综合网精品视频天天看| 精品少妇人妻大乳av| 99久久热只有国产精品| 人妻少妇久久中文字幕密拍| 北岛玲精品一区二区三| 公交车人妻免费视频| 中文字幕日产av一二三区| 欧美美女色视频免费看| 日本最新区免费中文字幕| 日本成人av在线免费看 | 黄片网址在线观看视频| 精品少妇人妻大乳av| 人妻一区二区三区中文字幕免费| 黄色小网站在线免费观看| 亚洲一区二区日韩欧美久久| 亚洲精品av成人在线观看| 夜夜撸夜夜干夜夜操| 亚洲黄色小视频网址| 亚洲狠狠婷婷久久综合| 国内偷拍视频在线观看| 国产精品自拍视频网站| 欧美一区二区三区高清视频| 9i精品福利一区二区三区蜜桃| 免费av在线亚洲精品| 日本人妻偷人妻中文字幕| 欧美口爆吞精一区二区三区| 中国黄页毛片免费视频| 成人午夜福利视频镇东影视| 亚洲av综合在线观看免费| 在线免费观看亚洲v| 视频一区二区在线观看视频| 一色桃子av人妻熟女完整版| 免费午夜在线看福利片| 久久久久久久久久99蜜桃| www精品一区二区三区| 91精品久久久久久久免费看| 国产精品8888在线观看| 大香蕉太香蕉在线免费看| 揉老熟女老熟妇aaa| 2021久久国自产拍精品| 欧美美女色视频免费看| 大鸡吧淫水四射视频| 国产剧情传媒av在线| 久久热免费在线观看视频| 邪恶老湿精品一区二区| 18免费1000视频国产| 人妻ol未亡人中文字幕| 午夜无码精品一区二区三区| 欧美亚洲综合另类清纯自拍| 内地伦理片在线免费观看播放| 人妻夜夜爽av网站| 可以免费直接观看的av| 日本激情床震无遮掩视频| 国产视频污污污在线观看| 亚洲美女啪啪邪恶视频| 手机在线看日韩av资源| 久操高清在线免费视频| 国产美女精品久久久有奶水| www国产精品人妻| 欧美日韩中文国产一区| 天堂av在线一区少妇| 日韩精品网站免费观看ww| 婷婷色在线免费视频| 国产免费观看av在线| 国产精品亚洲av国产| 亚洲第一中文视频 | 天天草天天日天天舔| 91九色p精品久久久| 亚洲一区二区蜜乳av| 白丝骚逼美女被操到逼水直流| 亚洲一区二区嗯好爽快点| xxx一区二区三区在线观看| 成年大片免费视频播放二级| 色视频网在线视频观看| 午夜dj在线观看免费完整视频| 国产自拍福利视频在线观看| 欧美精品色呦呦首页| 2022国产情侣在线视频播放| 草莓视频精品在线观看| 操的少妇嗷嗷叫视频| 成人av影视一区二区三区| 国内老熟妇精品露脸视频| 亚洲av 综合一区| 精品人妻一区二区三区18p| 亚洲第一视频在线视频| 91极品尤物国产在线播放| 91最新资源在线观看| 超碰av在线一区二区三区| 最近免费中文字幕日韩| 美女啪啪啪免费网站视频| 亚洲无码免费一二三区视频| 国产一区二区精品调教| 丝袜美腿av一区二区| 欧美区一区一区三区| 黑人巨大欧美一区二区视频| 中文字幕乱码视频日本一区二区| 97超碰资源在线播放| 91人妻porny精品国产| 日韩亚洲中文在线视频| 成年人免费视频网站在线播放| 欧美色高清vvvvvv| 天天看天天舔天天摸| 青青草毛片在线观看| 中文字幕99精品一区 | 国产精品亚洲精品久| 男女视频一区在线观看| 亚洲 欧美 日韩 另类在线| 日韩人妻熟妇精品xxx| 91免费福利视频专区| 欲色天天网综合久久| 欧美日韩中文国产一区| 91中文字幕yellow| 91精品国产人妻国产| 91av在线网址观看| 国产午夜精品一区二区不| 成人av在线国产精品| av看片资源网手机版在线播放| 久久中文字幕永久第一页| 色丁香国产精品综合久久| 中国黄页毛片免费视频| a区精品视频在线观看| 在线免费观看亚洲v| 日韩 欧美 在线 第一页| 亚洲精品欧美日韩专区免费| 日韩一级片黄色av| 亚洲av免费观看网站在线观看| 色yeye香蕉人妻凹凸一区二区| 精品99久久久久久久久| 男生捅女生逼的免费视频软件| 日韩一二三在线视频播放| 91九色popny人妻| 欧美亚洲自拍偷拍xxx| 日本一区二区亚洲综合| 我的嫂子伦理片在线观看| 97精产国品一二三产区区| 91久久精品视频地址| 男女啪啪视频免费国产| 国产午夜精品1区2区3区| 公交车人妻免费视频| 欧美码一二三区线观看| 日韩一二三在线视频播放| 3p人妻一区二区三区| 国产精品久久性欧美| 婷婷热re99久久精品国产| 人人妻,人人干,在线| 亚洲美女啪啪邪恶视频| 99久久国产综合精品五月天| 国内人妻自拍视频在线| 亚洲欧美综合一区二区三区四区| 91九色成人原创视频| 色尼玛图片亚洲综合| 国产精品8888在线观看| av亚洲天堂中文字幕| 中文字幕 av 在线| 欧美的一区二区三区| 国产精品不卡在线播放| 国产免费自拍视频精选| 91精品丝袜一区二区| 亚洲嘿嘿网站在线观看| 大香蕉免费在线伊人| 大香蕉手机免费在线| 女高中生第一次破苞av| 欧美av在线观看网址| 日本中文字幕第三区| 自由的成熟女性色视频| 男女又黄又刺激a片免费| 欧美亚洲自拍偷拍xxx| 91在线精品一区二区毛片| 免费在线观看成人激情视频| 瑟瑟视频在线网站免费观看| 国产大全视频在线观看| 欧洲亚洲国产永久精品| 午夜香蕉爽爽爽av| 中年美熟妇与少年的激情| 天天爽天天爽免费视频| 国产精品大片在线观看网站资源| 91精品人妻丰满熟妇| 中文字幕一区久久性色| 成人午夜福利视频镇东影视| 91免费免费观看在线| 自拍偷拍国产欧美精品| 天天操日日干夜夜射| 9久久久久久久久久久| 99999精品视频在线观看| 久久永久免费专区人妻| 在线亚洲视频免费看| 玩儿女人操逼大片儿| 91最新资源在线观看| 91九色国产自拍视频| 成人网视频欧美在线观看| 欧美口爆吞精一区二区三区| 久久免费视频精品8| 日韩激情又爽aaaaa级| 天天干天天干天天操天天日| 欧美裸体xxxxx极品少妇| 中文字幕乱码人妻在线观看| 久久久精品国产亚洲av水| 50岁熟女乱综合一区二区| 欧美区一区一区三区| 男人午夜视频在线观看| 欧美午夜理论片1000在线播放| 狠狠操视频在线免费观看| 国产精品网在线观看| 超碰av在线一区二区三区| 中文字幕超碰18区| 日韩视频在线观看四区| 宾馆偷拍一区二区三区| 国产大全视频在线观看| 人妻欧美制服中文字幕| 亚洲国产长腿丝袜av天堂| 99精品一区在线观看| 超级黄的有肉视频在线观看| av在线播放网址大全| 在线观看免费a级电影| 国产欧美亚洲精品第一页青草| 精品一区二区三区最新| 三级黄色在线播放网站| 国产综合无码视频呢在线| chinese熟女熟妇1老熟妇| 五月天丁香婷婷国产精品| 国产91边对白在线播放| 黄色av网址免费观看| 国产一级二级三级在线看| 真人一级一97片成人片| 亚洲欧美专区一区二区三区| 日本99精品一区二区三区| 色偷偷东京热男人的天堂| 91在线观看青青超碰| 在线人妻中文av导航| 中文字幕乱码精品一区二区三区| 亚洲av在线观看久久久| 亚洲精品av成人在线观看| 青青操一区二区三区| 78m中文字幕在线观看| 午夜福利92一区二区三区久久| 精品日产一匹二匹三匹四匹五匹| 老窝鸭av一区二区三区| 99国产热精品在线观看| 亚洲高清码在线精品av| 欧美精品日韩不卡免费| 国产精品不卡在线播放| 日韩欧美亚洲第五页| 9l视频自拍蝌蚪9l成人熟妇| 熟妇高潮喷水在线120p| 蜜桃视频app网站入口| 日本丰满老熟妇bbw| 熟妇av一区二区三区| 欧美国产亚洲自拍偷拍| 富婆按摩高潮一区二区三区91| 国产中文字幕88av| 韩国三级国产精品一区| 无套内射黑丝美女91| 欧美口爆吞精一区二区三区| 午夜福利92一区二区三区久久| 97超碰在线中文字幕精品| 一卡二卡成人久久精品| 丰满人妻一区二区三区免费视频棣 | 麻豆精品传媒在线播放| 亚洲的国产中文字幕的av| 91手机免费在线视频| 色婷婷综合久久久久中文一区二区| 天堂av在线一区少妇| 嗯嗯呐插进来嘛吸奶| 亚洲国产成人精品久久久久久久久| 人妻夜夜爽av网站| 国产精品无码一区二| 成年女女子免费视频播放| 一区二区三区精品久久人妻| 日本黄色an久久一区| 亚洲一二三区免费视频| 日本一区二区伦理在线观看| 国产97日韩在线观看| 天天日天天操天天干天天舔天天射| 亚洲欧美综合一区二区三区四区| 可以免费直接观看的av| 男人天堂2017在线| 少妇视频播放在线播放免费观看 | xxx一区二区三区在线观看 | 丝袜 制服 国产 欧美 日韩| 一区二区啪视频在线观看| 人妻一区二区三区中文字幕免费| 可以在线观看的视频你懂的| 国内老熟妇精品露脸视频| 丰满熟妇xxxx性久久久| 91成人国产在线观看九色| 免费观看黄色视频啊小穴啊| 日本熟妇三十熟女精品区| 超级黄的有肉视频在线观看| 日韩欧美精品熟妇视频播放| 蜜桃黄视频在线观看| 亚洲美女啪啪邪恶视频| 91av在线网址观看| caoporn中文字幕视频| 国产亚洲精品久久久久久电影| 中文字幕日韩一二区| 久久亚洲av午夜福利精品一区 | 日韩欧美亚洲精品高清国产| 91大神长腿美女视频在线观看| 国产97日韩在线观看| 亚洲一级精品久久久蜜桃| 国产高清欧美日韩精品| 91九色免费在线观看| 91九色免费在线观看| 欧美日韩精品亚洲欧美| 国产亚洲精品a77777| 色丁香国产精品综合久久| 最近2019日本中文字幕| 国产精品免费观看av| 好紧好湿好爽好大A视频| 91久久久久久久蜜桃| 欧美日韩精品免费看| 亚洲专区 欧美日韩| 各种玩小处雌女视频| 日本欧美黄色网站免费| 91精品在线观看视频| 在线观看视频一区二区精品| 日韩精品视频网站免费观看| 9999国产精品免费| 密乳一区二区三区国产亚洲av| jizz成人在线视频| 国产又粗又猛又大爽又黄香借| 中文字幕久久久aⅴ大片| 熟女老骚91porn九色| 最新中文字幕不卡av| 男女又黄又刺激a片免费| 国产交换乱淫99视频| 亚洲精品一区二区三区av| 国产综合欧美日韩在线观看| 大屁股熟女少妇一区二区| 自拍偷拍亚洲色图经典三级| 邪恶老湿精品一区二区| 91综合久久久久久久久久久| 久久久精品国产综合| 亚洲国产长腿丝袜av天堂| 最近中文字幕版2019日本| 深夜黄色福利网站在线观看| 亚洲第一视频在线视频| 弄爽新婚人妻第五部美妙人妻| 色五月婷婷综合国产在线| 初撮日本五十路人妻| 久久99国产精品久久99蜜月| 国产一区二区三区黄片欧美| 可以在线观看的av网站| 中年美熟妇与少年的激情| 国产女人AAA级久久久级| 不戴胸罩的人妻电影| 成人涩涩小片视频日本| 99偷拍精品一区二区| 忘忧草精品久久久久久久高清| 国产黄片一区在线观看| 91精品丝袜一区二区| 欧美一卡二卡3卡4卡无卡十| 免费一区二区三区香蕉| 美女少妇一区二区久久久| 日韩少妇中文字幕一区| 日韩精品免费人成视频| 国产精品视频中文无码| 亚洲校园~春色综合| av亚洲欧美一区二区| 日本熟妇三十熟女精品区| 99成人自拍视频在线观看| 欧美精品色呦呦首页| 精品久久久中文字幕熟女| 日韩欧美精品熟妇视频播放| 欧美亚洲污视频网站| 日韩人妻少妇av电影| 久亚洲aⅴ一区二区三区写真| 熟女国产一区二区三区| 最新黄色天堂av在线资源| av一区二区在线播放色婷婷精品| 一区二区三区高清在线| 91精品免费在线播放| 日本xxxxx久久| 青青草毛片在线观看| 又粗又硬又黄又色的| 亚洲熟妇少妇一区二区| 91精品一区二区三区蜜桃| 91桃色午夜福利视频| 亚洲欧美综合一区二区三区四区| 亚洲av免费观看网站在线观看| 鲁死你资源站亚洲av一级aⅴ| 日韩美女av电影网| 精品少妇人妻av免费麻豆| 九一欧洲国产无码在线| 亚洲欧洲久久av日日更新| 亚洲天堂av影视在线| 国产精品一国产精品免费| av蜜臀免费在线观看| 在线观看免费a级电影| 精品中文字幕高清久久久久三级| 51成人看片免费软件| 色尼玛图片亚洲综合| 天天插天天射天天日天天干| 天天插天天干天天爽|