亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wtl for mfc programmers, part vii - splitter windows - wtl.htm

?? WT教程中文版 內有詳細的介紹 包括各個方面
?? HTM
?? 第 1 頁 / 共 3 頁
字號:
<html>
<head>
<title>WTL for MFC Programmers, Part VII - Splitter Windows</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#33CCCC" text="#000000">
<p align="center"><b><font style="FONT-SIZE: 16pt" size="4" color="#0033CC">WTL for MFC Programmers, Part VII - Splitter Windows</font></b><br>
  <br>
</p>
<p align="left">原作 :<b><font color="#CC3366">Michael Dunn</font></b> [<a href="http://www.codeproject.com/wtl/WTL4MFC7.asp">英文原文</a>]<br>
  翻譯 :<a href="mailto:inte2000@163.com">Orbit(桔皮干了)</a> [<a href="http://www.winmsg.com/cn/orbit.htm">http://www.winmsg.com/cn/orbit.htm</a>]</p>
<p align="left"><a href="demo/WTL4MFC7_demo.zip">下載演示程序代碼</a></p>
 
<H2><font color="#FFFF66">本章內容</font></H2>
<UL>
        <LI><A href="#intro">介紹</A> 
        <LI><A href="#wtlsplitters">WTL 的分隔窗口</A> 
        <UL>
          <LI><A href="#splitclasses">相關的類</A> 
          <LI><A href="#creatingsplitter">創建分隔窗口</A> 
          <LI><A href="#splittermethods">基本的方法</A> 
          <LI><A href="#splitdata">數據成員</A> </LI></UL>
        <LI><A href="#startsample">開始一個例子工程</A> 
        <LI><A href="#creatingpanes">創建一個窗格內的窗口</A> 
        <LI><A href="#messagerouting">消息處理</A> 
        <LI><A href="#panecont">窗格容器</A> 
        <UL>
          <LI><A href="#pcclasses">相關的類</A> 
          <LI><A href="#pcmethods">基本方法</A> 
          <LI><A href="#pcinsplitter">在分隔窗口中使用窗格容器</A> 
          <LI><A href="#pcclosebtn">關閉按鈕和消息處理</A> </LI></UL>
        <LI><A href="#advancedsplitter">高級功能</A> 
        <UL>
          <LI><A href="#nested">嵌套的分隔窗口</A> 
          <LI><A href="#axinpane">在窗格中使用ActiveX控件</A> 
          <LI><A href="#specialdraw">特殊繪制</A> </LI></UL>
        <LI><A href="#pcoverrides">窗格容器內的特殊繪制</A> 
        <LI><A href="#bonus">在狀態欄顯示進度條</A> 
        <LI><A href="#upnext">繼續</A> 
        <LI><A href="#references">參考</A> 
        <LI><A href="#revisionhistory">修改記錄</A> </LI></UL>

<H2><A name=intro></A><font color="#FFFF66">介紹</font></H2>
      
<P>隨著使用兩個分隔的視圖管理文件系統的資源管理器在Windows 95中第一次出現,分隔窗口逐漸成為一種流行的界面元素。MFC也有一個復雜的功能強大的分隔窗口類,但是要掌握它的用法確實有點難,并且它和文檔/視圖框架聯系緊密。在第七章我將介紹WTL的分隔窗口,它比MFC的分隔窗口要簡單一些。WTL的分隔窗口沒有MFC那么多特性,但是易于使用和擴展。</P>
<p>本章的例子工程是用WTL重寫的<a href="http://www.codeproject.com/clipboard/clipspy.asp">ClipSpy</a>,如果你對這個程序不太熟悉,現在可以快速瀏覽一下本章內容,因為我只是復制了ClipSpy的功能而沒用深入的解釋它是如何工作的,畢竟這篇文章的重點是分隔窗口,不是剪貼板。</p>
<H2><A name=wtlsplitters></A><font color="#FFFF66">WTL 的分隔窗口</font></H2>
      
<P>頭文件atlsplit.h含有所有WTL的分隔窗口類,一共有三個類:CSplitterImpl,CSplitterWindowImpl和CSplitterWindowT,不過你通常只會用到其中的一個。下面將介紹這些類和它們的基本方法。</P>
      
<H3><A name=splitclasses></A><font color="#FFFF66">相關的類</font></H3>
      
<P>CSplitterImpl是一個有兩個參數的模板類,一個是窗口界面類的類名,另一個是布爾型變量表示分隔窗口的方向:true表示垂直方向,false表示水平方向。CSplitterImpl類包含了幾乎所有分隔窗口的實現代碼,它的許多方法是可重載的,重載這些方法可以自己繪制分隔條的外觀或者實現其它的效果。CSplitterWindowImpl類是從CWindowImpl和CSplitterImpl兩個類派生出來的,但是它的代碼不多,有一個空的WM_ERASEBKGND消息處理函數和一個WM_SIZE處理函數用于重新定位分隔窗口。</P>
<p>最后一個是CSplitterWindowT類,它從CSplitterImpl類派生,它的窗口類名是“WTL_SplitterWindow”。還有兩個自定義數據類型通常用來取代上面的三個類:CSplitterWindow用于垂直分隔窗口,CHorSplitterWindow用于水平分隔窗口。</p>
<H3><A name=creatingsplitter></A><font color="#FFFF66">創建分割窗口</font></H3>
      
<P>由于CSplitterWindow是從CWindowImpl類派生的,所以你可以像創建其他子窗口那樣創建分隔窗口。分隔窗口將存在于整個主框架窗口的生命周期,應該在CMainFrame類添加一個CSplitterWindow類型的變量。在CMainFrame::OnCreate()函數內,你可以將分隔窗口作為主窗口的子窗口創建,然后將其設置為主窗口的客戶區窗口:</P>
<PRE><font color="#0033FF">LRESULT CMainFrame::OnCreate ( LPCREATESTRUCT lpcs )
{
<SPAN class=cpp-comment>// ...</SPAN>
<SPAN class=cpp-keyword>const</SPAN> DWORD dwSplitStyle = WS_CHILD | WS_VISIBLE | 
                             WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
            dwSplitExStyle = WS_EX_CLIENTEDGE;
 
    m_wndSplit.Create ( *<SPAN class=cpp-keyword>this</SPAN>, rcDefault, NULL, 
                        dwSplitStyle, dwSplitExStyle );
 
    m_hWndClient = m_wndSplit;
}</font></PRE>
      
<P>創建分隔窗口之后,你就可以為每個窗格指定窗口或者做其他必要的初始化工作。</P>
      
<H3><A name=splittermethods></A><font color="#FFFF66">基本方法</font></H3>
<PRE><SPAN class=cpp-keyword><font color="#0033FF">bool</font></SPAN><font color="#0033FF"> SetSplitterPos(<SPAN class=cpp-keyword>int</SPAN> xyPos = -<SPAN class=cpp-literal>1</SPAN>, <SPAN class=cpp-keyword>bool</SPAN> bUpdate = <SPAN class=cpp-keyword>true</SPAN>)
<SPAN class=cpp-keyword>int</SPAN> GetSplitterPos()</font></PRE>
      
<P>可以調用SetSplitterPos()函數設置分隔條的位置,這個位置表示分割條距離分隔窗口的上邊界(水平分隔窗口)或左邊界(垂直分隔窗口)有多少個象素點。你可以使用默認值-1將分隔條設置到分隔窗口的中間,使兩個窗格大小相同,通常傳遞true給bUpdate參數表示在移動分隔條之后相應的改變兩個窗格的大小。GetSplitterPos()返回當前分隔條的位置,這個位置也是相對于分隔窗口的上邊界或左邊界。</P>
<PRE><SPAN class=cpp-keyword><font color="#0033FF">bool</font></SPAN><font color="#0033FF"> SetSinglePaneMode(<SPAN class=cpp-keyword>int</SPAN> nPane = SPLIT_PANE_NONE)
<SPAN class=cpp-keyword>int</SPAN> GetSinglePaneMode()</font></PRE>
      
<P>調用SetSinglePaneMode()函數可以改變分隔窗口的模式使單窗格模式還是雙窗格模式,在單窗格模式下,只有一個窗格使可見的并且隱藏了分隔條,這和MFC的動態分隔窗口相似(只是沒有那個小鉗子形狀的手柄,它用于重新分隔分隔窗口)。對于nPane參數可用的值是SPLIT_PANE_LEFT,SPLIT_PANE_RIGHT,SPLIT_PANE_TOP,SPLIT_PANE_BOTTOM,和SPLIT_PANE_NONE,前四個指示顯示那個窗格(例如,使用SPLIT_PANE_LEFT參數將顯示左邊的窗格,隱藏右邊的窗格),使用SPLIT_PANE_NONE表示兩個窗格都顯示。GetSinglePaneMode()返回五個SPLIT_PANE_*值中的一個表示當前的模式。</P>
<PRE><font color="#0033FF">DWORD SetSplitterExtendedStyle(DWORD dwExtendedStyle, DWORD dwMask = <SPAN class=cpp-literal>0</SPAN>)
DWORD GetSplitterExtendedStyle()</font></PRE>
      
<P>分隔窗口有自己的樣式用于控制當整個分隔窗口改變大小時如何移動分隔條。有以下幾種樣式:</P>
      
<UL>
  <LI>SPLIT_PROPORTIONAL: 兩個窗格一起改變大小
  <LI>SPLIT_RIGHTALIGNED: 右邊的窗格保持大小不變,只改變左邊的窗格大小
  <LI>SPLIT_BOTTOMALIGNED: 下部的窗格保持大小不變,只改變上邊的窗格大小</LI>
</UL>
      
<P>如果既沒有指定SPLIT_PROPORTIONAL,也沒有指定SPLIT_RIGHTALIGNED/SPLIT_BOTTOMALIGNED,則分隔窗口會變成左對齊或上對齊。如果將SPLIT_PROPORTIONAL和SPLIT_RIGHTALIGNED/SPLIT_BOTTOMALIGNED一起使用,則優先選用SPLIT_PROPORTIONAL樣式。</P>
<p>還有一個附加的樣式用來控制分隔條是否可以被用戶移動:</p>
<UL>
  <LI>SPLIT_NONINTERACTIVE:分隔條不能被移動并且不相應鼠標</LI>
</UL>
      
<P>擴展樣式的默認值是 SPLIT_PROPORTIONAL。</P>
<PRE><SPAN class=cpp-keyword><font color="#0033FF">bool</font></SPAN><font color="#0033FF"> SetSplitterPane(<SPAN class=cpp-keyword>int</SPAN> nPane, HWND hWnd, <SPAN class=cpp-keyword>bool</SPAN> bUpdate = <SPAN class=cpp-keyword>true</SPAN>)
<SPAN class=cpp-keyword>void</SPAN> SetSplitterPanes(HWND hWndLeftTop, HWND hWndRightBottom, <SPAN class=cpp-keyword>bool</SPAN> bUpdate = <SPAN class=cpp-keyword>true</SPAN>)
HWND GetSplitterPane(<SPAN class=cpp-keyword>int</SPAN> nPane)</font></PRE>
      
<P>可以調用SetSplitterPane()為分隔窗口的窗格指派子窗口,nPane是一個SPLIT_PANE_*類型的值,表示設置拿一個窗格。hWnd是子窗口的窗口句柄。你可以使用SetSplitterPane()將一個子窗口同時指定給兩個窗格,對于bUpdate參數通常使用默認值,也就是告訴分隔窗口立即調整子窗口的大小以適應窗格的大小。可以調用GetSplitterPane()得到某個窗格的子窗口句柄,如果窗格沒有指派子窗口則GetSplitterPane()返回NULL。</P>
<PRE><SPAN class=cpp-keyword><font color="#0033FF">bool</font></SPAN><font color="#0033FF"> SetActivePane(<SPAN class=cpp-keyword>int</SPAN> nPane)
<SPAN class=cpp-keyword>int</SPAN> GetActivePane()</font></PRE>
      
<P>SetActivePane()函數將分隔窗口中的某個子窗口設置為當前焦點窗口,nPane是SPLIT_PANE_*類型的值,表示需要激活哪個窗格,這個函數還可以設置默認的活動窗格(后面介紹)。GetActivePane()函數查看所有擁有焦點的窗口,如果擁有焦點的窗口是窗格或窗格的子窗口就返回一個SPLIT_PANE_*類型的值,表示是哪個窗格。如果當前擁有焦點的窗口不是窗格的子窗口,那么GetActivePane()返回SPLIT_PANE_NONE。</P>
<PRE><SPAN class=cpp-keyword><font color="#0033FF">bool</font></SPAN><font color="#0033FF"> ActivateNextPane(<SPAN class=cpp-keyword>bool</SPAN> bNext = <SPAN class=cpp-keyword>true</SPAN>)</font></PRE>
<P>如果分隔窗口是單窗格模式,焦點被設到可見的窗格上,否則的話,ActivateNextPane()函數將調用GetActivePane()查看擁有焦點的窗口。如果一個窗格(或窗格內的子窗口)擁有檢點,分隔窗口就將焦點設給另一個窗格,否則ActivateNextPane()將判斷bNext的值,如果是true就激活left/top窗格,如果是false則激活right/bottom窗格。</P>
<PRE><SPAN class=cpp-keyword><font color="#0033FF">bool</font></SPAN><font color="#0033FF"> SetDefaultActivePane(<SPAN class=cpp-keyword>int</SPAN> nPane)
<SPAN class=cpp-keyword>bool</SPAN> SetDefaultActivePane(HWND hWnd)
<SPAN class=cpp-keyword>int</SPAN> GetDefaultActivePane()</font></PRE>
<P>調用SetDefaultActivePane()函數可以設置默認的活動窗格,它的參數可以是SPLIT_PANE_*類型的值,也可以是窗口的句柄。如果分隔窗口自身得到的焦點,可以通過調用SetFocus()將焦點轉移給默認窗格。GetDefaultActivePane()函數返回SPLIT_PANE_*類型的值表示哪個窗格是當前默認的活動窗格。</P>
<PRE><SPAN class=cpp-keyword><font color="#0033FF">void</font></SPAN><font color="#0033FF"> GetSystemSettings(<SPAN class=cpp-keyword>bool</SPAN> bUpdate)</font></PRE>
      
<P>GetSystemSettings()讀取系統設置并相應的設置數據成員。分隔窗口在OnCreate()函數中自動調用這個函數,你不需要自己調用這個函數。當然,你的主框架窗口應該響應WM_SETTINGCHANGE并將它傳遞給分隔窗口, 
  CSplitterWindow在WM_SETTINGCHANGE消息的處理函數中調用GetSystemSettings()。傳遞true給bUpdate參數,分隔窗口會根據新的設置重畫自己。</P>
      
<H3><A name=splitdata></A><font color="#FFFF66">數據成員</font></H3>
      
<P>其他的一些特性可以通過直接訪問CSplitterWindow的公有成員來設定,只要GetSystemSettings()被調用了,這些公有成員也會相應的被重置。</P>
      
<P>m_cxySplitBar:控制分隔條的寬度(垂直分隔條)和高度(水平分隔條)。默認值是通過調用GetSystemMetrics(SM_CXSIZEFRAME)(垂直分隔條)或GetSystemMetrics(SM_CYSIZEFRAME)(水平分隔條)得到的。</P>
      
<P>m_cxyMin:控制每個窗格的最小寬度(垂直分隔)和最小高度(水平分隔),分隔窗口不允許拖動比這更小的寬度或高度。如果分隔窗口有WS_EX_CLIENTEDGE擴展屬性,則這個變量的默認值是0,否則其默認值是2*GetSystemMetrics(SM_CXEDGE)(垂直分隔)或2*GetSystemMetrics(SM_CYEDGE)(水平分隔)。</P>
<p>m_cxyBarEdge:控制畫在分隔條兩側的3D邊界的寬度(垂直分隔)或高度(水平分隔),其默認值剛好和m_cxyMin相反。</p>
<p>m_bFullDrag:如果是true,當分隔條被拖動時窗格大小跟著調整,如果是false,拖動時只顯示一個分隔條的影子,直到拖動停止才調整窗格的大小。默認值是調用SystemParametersInfo(SPI_GETDRAGFULLWINDOWS)函數的返回值。</p>
<H2><A name=startsample></A><font color="#FFFF66">開始一個例子工程</font></H2>
      
<P>既然我們已經對分隔窗口有了基本的了解,我們就來看看如何創建一個包含分隔窗口的框架窗口。使用WTL向導開始一個新工程,在第一頁選擇SDI Application并單擊Next,在第二頁,如下圖所示取消工具條并選擇不使用視圖窗口:</P>
      
<P><IMG height=387 alt=" [AppWizard pg 2 - 22K] " 
      src="images/appwiz7.png" 
      width=477 align=bottom border=0></P>
      
<P>我們不使用分隔窗口是因為分隔窗口和它的窗格將作為“視圖窗口”,在CMainFrame類中添加一個CSplitterWindow類型的數據成員:</P>
<PRE><SPAN class=cpp-keyword><font color="#0033FF">class</font></SPAN><font color="#0033FF"> CMainFrame : <SPAN class=cpp-keyword>public</SPAN> ...
{
<SPAN class=cpp-comment>//...</SPAN>
<SPAN class=cpp-keyword>protected</SPAN>:
    CSplitterWindow  m_wndVertSplit;
};</font></PRE>
      
<P>接著在OnCreate()中創建分隔窗口并將其設為視圖窗口:</P>
<PRE><font color="#0033FF">LRESULT CMainFrame::OnCreate ( LPCREATESTRUCT lpcs )
{
<SPAN class=cpp-comment>//...</SPAN>
    <SPAN class=cpp-comment>// Create the splitter window</SPAN>
<SPAN class=cpp-keyword>const</SPAN> DWORD dwSplitStyle = WS_CHILD | WS_VISIBLE |
                           WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
            dwSplitExStyle = WS_EX_CLIENTEDGE;
 
    m_wndVertSplit.Create ( *<SPAN class=cpp-keyword>this</SPAN>, rcDefault, NULL,
                            dwSplitStyle, dwSplitExStyle );
 
    <SPAN class=cpp-comment>// Set the splitter as the client area window, and resize</SPAN>
    <SPAN class=cpp-comment>// the splitter to match the frame size.</SPAN>
    m_hWndClient = m_wndVertSplit;
    UpdateLayout();
 
    <SPAN class=cpp-comment>// Position the splitter bar.</SPAN>
    m_wndVertSplit.SetSplitterPos ( <SPAN class=cpp-literal>200</SPAN> );
 
    <SPAN class=cpp-keyword>return</SPAN> <SPAN class=cpp-literal>0</SPAN>;
}</font></PRE>
      
<P>需要注意的是在設置分隔窗口的位置之前要先設置m_hWndClient并調用CFrameWindowImpl::UpdateLayout()函數,UpdateLayout()將分隔窗口設置為初始時的大小。如果跳過這一步,分隔窗口的大小將不確定,可能小于200個象素點的寬度,最終導致SetSplitterPos()出現意想不到的結果。還有一種不調用UpdateLayout()函數的方,就是先得到框架窗口的客戶區坐標,然后使用這個客戶區坐標替換rcDefault坐標創建分隔窗口。使用這種方式創建的分隔窗口一開始就在正確的初始位置上,隨后對位置調整的函數(例如 
  SetSplitterPos())都可以正常工作。</P>
      
<P>現在運行我們的程序就可以看到分隔條,即使沒有創建任何窗格窗口它仍具有基本的行為。你可以拖動分隔條,用鼠標雙擊分隔條使其移到窗口的中間位置。</P>
      
<P><img height=255 alt=" [Empty splitter - 4K] " 
      src="images/emptysplit7.png" 
      width=329 align=bottom border=0></P>
      
<P>為了演示分隔窗口的不同使用方法,我將使用一個CListViewCtrl派生類和一個簡單的CRichEditCtrl,下面是從CClipSpyListCtrl類摘錄的代碼,我們在左邊的窗格使用這個類:</P>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久三级| 亚洲成人在线观看视频| 久久99国产精品免费| 欧美日韩中文精品| 亚洲一区视频在线| 欧美日韩1区2区| 日本不卡123| 欧美成人午夜电影| 国精品**一区二区三区在线蜜桃| 精品国产不卡一区二区三区| 国产一区二区三区精品视频| 国产农村妇女精品| 91亚洲大成网污www| 亚洲精品免费在线| 6080yy午夜一二三区久久| 日韩二区三区在线观看| 精品精品欲导航| 国产69精品一区二区亚洲孕妇| 亚洲欧洲精品天堂一级| 亚洲激情中文1区| 欧美二区三区91| 国产乱妇无码大片在线观看| 国产精品美女久久久久久久| 欧美色爱综合网| 狠狠狠色丁香婷婷综合久久五月| 国产精品情趣视频| 欧美三级一区二区| 国产精品亚洲а∨天堂免在线| 成人免费一区二区三区在线观看| 欧美乱熟臀69xxxxxx| 国产精品国产三级国产aⅴ入口 | 久久久久久久网| www.综合网.com| 日本中文在线一区| 国产精品短视频| 欧美精品黑人性xxxx| 东方欧美亚洲色图在线| 午夜精品福利一区二区蜜股av | 国产亚洲精品免费| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 在线不卡的av| 成人av资源在线观看| 日韩极品在线观看| 国产精品免费丝袜| 7777精品伊人久久久大香线蕉| 成人一级黄色片| 美女性感视频久久| 亚洲品质自拍视频| 精品噜噜噜噜久久久久久久久试看| 91丝袜美腿高跟国产极品老师| 精品一区二区三区在线观看国产 | 亚洲一区二三区| 久久精品一区八戒影视| 欧美日韩一二三| 一区二区免费在线| 国产精品欧美综合在线| www国产亚洲精品久久麻豆| 亚洲综合色自拍一区| 性感美女极品91精品| 色综合一个色综合亚洲| 99久久99精品久久久久久 | 欧美mv和日韩mv国产网站| 欧美日韩精品系列| 91浏览器在线视频| 国产精品国产三级国产普通话三级 | 波多野结衣中文一区| 韩国午夜理伦三级不卡影院| 日韩av在线发布| 亚洲va欧美va国产va天堂影院| 亚洲你懂的在线视频| 国产精品欧美久久久久一区二区| 久久久久国产精品厨房| 欧美一区午夜视频在线观看| 欧美老肥妇做.爰bbww| 色哟哟在线观看一区二区三区| 成人18精品视频| 波多野结衣在线一区| 国产成人亚洲综合色影视 | 国产91精品一区二区| 狠狠色丁香久久婷婷综| 精品亚洲免费视频| 欧美一区二区三区小说| 欧美老肥妇做.爰bbww| 欧美乱妇一区二区三区不卡视频 | 欧美视频中文一区二区三区在线观看| 99精品视频一区二区三区| 成人av在线播放网站| 成人97人人超碰人人99| 色综合天天狠狠| 欧美视频在线观看一区二区| 欧美三级日韩在线| 欧美一区2区视频在线观看| 日韩一区二区免费电影| 欧美精品一区二区三区久久久| 精品人伦一区二区色婷婷| 久久久精品综合| 国产精品青草久久| 一区二区三区四区中文字幕| 亚洲成人av资源| 美女脱光内衣内裤视频久久网站| 欧美aa在线视频| 国产一区91精品张津瑜| www.亚洲在线| 欧美性三三影院| 欧美刺激午夜性久久久久久久| 久久免费美女视频| 亚洲人精品一区| 午夜电影网亚洲视频| 激情文学综合丁香| 91热门视频在线观看| 欧美人伦禁忌dvd放荡欲情| 日韩欧美中文字幕一区| 国产精品久久一级| 亚洲mv大片欧洲mv大片精品| 韩国欧美一区二区| 91年精品国产| 日韩精品一区二区三区在线播放| 国产亚洲精品bt天堂精选| 91精品婷婷国产综合久久| 国产婷婷一区二区| 亚洲综合在线五月| 国产又黄又大久久| 在线视频欧美区| 午夜视频一区在线观看| 精品国产三级电影在线观看| 日韩理论片一区二区| 麻豆精品国产传媒mv男同| av亚洲精华国产精华| 日韩视频免费观看高清完整版在线观看| 精品一区二区精品| 色视频成人在线观看免| 在线综合亚洲欧美在线视频| 国产精品欧美一区喷水| 久久www免费人成看片高清| 99久久婷婷国产| 精品国产免费一区二区三区香蕉| 亚洲精品乱码久久久久久| 国产一区二区视频在线播放| 欧美亚洲动漫另类| 中文字幕的久久| 久久国产福利国产秒拍| 在线观看免费视频综合| 久久久久久久综合色一本| 亚洲国产va精品久久久不卡综合| 成人黄色大片在线观看| 日韩一级免费观看| 一级中文字幕一区二区| 风间由美性色一区二区三区| 欧美一区二区性放荡片| 亚洲国产一二三| 91小视频在线观看| 久久精品欧美日韩精品| 日韩av午夜在线观看| 欧美综合一区二区| 亚洲视频香蕉人妖| 不卡视频一二三四| 国产日韩影视精品| 国产一区二区三区黄视频 | 成人性生交大片免费看在线播放| 欧美日本在线看| 亚洲精品乱码久久久久久| 国产揄拍国内精品对白| 国产成人精品三级| 国产麻豆视频一区| 欧美亚洲综合久久| 日本伦理一区二区| 亚洲国产精品成人综合| 国精产品一区一区三区mba视频| 欧美一卡在线观看| 久久超碰97中文字幕| 色婷婷精品久久二区二区蜜臀av| 欧美精品tushy高清| 亚洲精品ww久久久久久p站| 色狠狠综合天天综合综合| 亚洲天堂网中文字| 91美女在线视频| 亚洲精品乱码久久久久久久久 | 奇米一区二区三区| 日韩一区二区三区视频| 麻豆精品在线观看| 337p粉嫩大胆色噜噜噜噜亚洲| 韩国理伦片一区二区三区在线播放| 日韩欧美国产一区二区在线播放 | 国产精品高潮呻吟| 99久久久无码国产精品| 亚洲免费观看高清在线观看| 欧美性一区二区| 人妖欧美一区二区| 精品剧情v国产在线观看在线| 国产一区二区不卡在线| 中文字幕不卡在线观看| 91女神在线视频| 午夜国产精品一区| 精品国产乱码久久久久久1区2区| 精品国产一二三| 图片区小说区区亚洲影院| 美女国产一区二区三区| 国产成人精品免费| 99riav久久精品riav| 91精品久久久久久久91蜜桃|