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

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

?? chap10.html

?? VC編程實例(各種編程例子)
?? HTML
?? 第 1 頁 / 共 5 頁
字號:
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<META NAME="Generator" CONTENT="Microsoft Word 97">
<TITLE>第四章 基于對話框的應用程序</TITLE>
</HEAD>
<BODY>

<FONT FACE="黑體" LANG="ZH-CN" SIZE=5><P ALIGN="CENTER"><A NAME="_Toc425698722">第十章</FONT><FONT FACE="Arial" SIZE=5> MFC</FONT><FONT FACE="黑體" LANG="ZH-CN" SIZE=5>通用類</A></P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">MFC</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>不僅提供了大量的用于編寫圖形用戶界面的類,它也包含了許多通用類用于處理字符串、列表、數組、日期和時間,有了這些通用類,編寫程序時就可以避免使用復雜的數據結構。例如,由于</FONT><FONT SIZE=3>MFC</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>的數組類能夠自動的改變大小,我們在不知道數組維數的情況下就不必使用一個大數組,這樣就可以節約內存,提高程序的運行速度。</P>
<P ALIGN="JUSTIFY">本章主要涉及以下內容:</P>

<UL>
<P ALIGN="JUSTIFY"><LI>數組類</LI></P>
<P ALIGN="JUSTIFY"><LI>列表類</LI></P>
<P ALIGN="JUSTIFY"><LI>映射類</LI></P>
<P ALIGN="JUSTIFY"><LI>字符串類</LI></P>
<P ALIGN="JUSTIFY"><LI>日期和時間類</LI></P></UL>

</FONT><FONT FACE="仿宋_GB2312" LANG="ZH-CN" SIZE=4><P ALIGN="CENTER"><A NAME="_Toc425698723">第一節</FONT><FONT SIZE=4> </FONT><FONT FACE="仿宋_GB2312" LANG="ZH-CN" SIZE=4>數組類</A></P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">MFC</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>的數組類使你可以創建和操作一個實際上可以處理各種數據類型的一維數組對象。除了</FONT><FONT SIZE=3>MFC</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>可以在運行時動態的增大和縮小數組對象外,這些數組對象非常象常規的數組。這也意味者在聲明數組對象時不必關心它的維數。由于</FONT><FONT SIZE=3>MFC</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>可以動態的變大和變小,你不必考慮使用常規數組時出現的內存浪費。使用常規數組時你必須將其定義成能夠容納所有可能需要的元素,而不管這些元素是否真的被會使用。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">MFC</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>的數組類包含</FONT><FONT SIZE=3>CByteArray</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>、</FONT><FONT SIZE=3>CDWordArray</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>、</FONT><FONT SIZE=3>CPtrArray</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>、</FONT><FONT SIZE=3>CUIntArray</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>、</FONT><FONT SIZE=3>CWordArray</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>和</FONT><FONT SIZE=3>CStringArray.</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>。從這些類的名稱可以看出,每一個類都被設計成能夠處理一個特定的數據類型。例如,在本節例子中將要用到的</FONT><FONT SIZE=3>CUIntArray</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>類是一個處理無符號整形數的數組類,而</FONT><FONT SIZE=3>CObjecArray</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>類代表對象數組類。這些數組類幾乎相同,僅僅的區別在于它們儲存的數據類型不同。如果你學會使用其中的一種數組類的使用,你就學會了所有數組類的使用。</P>
<P ALIGN="JUSTIFY">數組類有下列成員函數:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">Add</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()</P>
<P ALIGN="JUSTIFY">在數組的最后追加一個元素,可以根據需要增大數組大小。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">ElementAt</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()</P>
<P ALIGN="JUSTIFY">獲得一個指向數組元素的指針</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">FreeExtra</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()</P>
<P ALIGN="JUSTIFY">釋放不用的數組內存</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">GetAt</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()</P>
<P ALIGN="JUSTIFY">獲取數組內指定位置處的值</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">GetSize</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()</P>
<P ALIGN="JUSTIFY">獲取數組中包含的元素個數</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">GetUpperBound</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()</P>
<P ALIGN="JUSTIFY">獲取數組的上界值。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">InsertAt</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()</P>
<P ALIGN="JUSTIFY">在數組的指定位置處插入一個元素,后面的元素的下標加</FONT><FONT SIZE=3>1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">RemoveAll</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()</P>
<P ALIGN="JUSTIFY">刪除數組中所有的元素。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">SetAt</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()</P>
<P ALIGN="JUSTIFY">設定數組指定位置處的值。因為制革函數不會增加數組的大小,故這個下標此時一定要有效。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">SetAtGrow</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()</P>
<P ALIGN="JUSTIFY">設定數組的指定位置處的值,可以根據需要增大數組的大小。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">SetSize</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()</P>
<P ALIGN="JUSTIFY">設置數組的初始大小。</P>
<P ALIGN="JUSTIFY">下面將介紹一個數組的程序,這個程序可以讓你測試一下</FONT><FONT SIZE=3>MFC</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>的數組類。</P>
<P ALIGN="JUSTIFY">首先,這個程序在</FONT><FONT SIZE=3>View</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>類中聲明一個數組對象,如下:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">CUIntArray  array;</P>
</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">接著,在</FONT><FONT SIZE=3>View</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>類的構造函數中初始化數組,將其設置成包含十個元素,</P>
</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=1><P>array.SetSize(10, 5);</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">SetSize</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()函數有兩個參數,第一個參數是數組的初始大小,第二個參數是數組元素每次增加時增加的個數。</P>
<P ALIGN="JUSTIFY">在設置完數組的大小之后,程序等待用戶在窗口中單擊鼠標左鍵或右鍵。如果用戶這樣做了,程序將顯示一個合適的對話框并且處理輸入到對話框中的數據。下面的代碼是該程序的</FONT><FONT SIZE=3>OnLButtonDown</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()函數,用于處理用戶單擊右鍵的事件。</P>
</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=1><P>void CArrayView::OnLButtonDown(UINT nFlags, CPoint point) </P>
<P>{</P>
<P>    CArrayAddDlg dialog(this);</P>
<P>    dialog.m_index = 0;</P>
<P>    dialog.m_value = 0;</P>
<P>    dialog.m_radio = 0;</P>
<P>    int result = dialog.DoModal();</P>
<P>    if (result == IDOK)</P>
<P>    {</P>
<P>        if (dialog.m_radio == 0)</P>
<P>            array.SetAtGrow(dialog.m_index, dialog.m_value);</P>
<P>        else if (dialog.m_radio == 1)</P>
<P>            array.InsertAt(dialog.m_index, dialog.m_value, 1);</P>
<P>        else</P>
<P>            </P>
<P>array.Add(dialog.m_value);</P>
<P>        Invalidate();</P>
<P>    }</P>
<P>    CView::OnLButtonDown(nFlags, point);</P>
<P>}</P>
</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">這段代碼開始先創建一個對話框對象并初始化。如果用戶選擇對話框的“確定”按鈕,</FONT><FONT SIZE=3>OnLButton</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()函數將檢查對話框的成員變量</FONT><FONT SIZE=3>m_radio</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>。值為</FONT><FONT SIZE=3>0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>表示第一個單選按鈕(設置)被選中,值為</FONT><FONT SIZE=3>1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>表示第二個單選按鈕(插入)被選中,值為</FONT><FONT SIZE=3>2</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>表示第三個單選按鈕(添加)被選中。</P>
<P ALIGN="JUSTIFY">如果用戶希望設置數組的元素,程序將調用</FONT><FONT SIZE=3>SetAtGrow</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()函數,它需要兩個參數,一個是數組元素的下標值,另一個是希望設置的值。它不象常規的</FONT><FONT SIZE=3>SetAt</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()函數,用戶必須使用當前有效的數組下標值。</FONT><FONT SIZE=3>SetAtGrow</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()為了設置指定位置處的值將根據需要增大數組的大小。</P>
<P ALIGN="JUSTIFY">當用戶選擇了“插入”單選按鈕,程序將調用</FONT><FONT SIZE=3>InsertAt</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()函數,它需要兩個參數,一個是要插入的數組元素的下標,另一個是該數組元素的值。這將在指定位置處創建一個新的數組元素,并將把后面的元素往后推。最后當用戶選擇了“添加”按鈕,程序將調用</FONT><FONT SIZE=3>Add()</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>函數,這將在數組的后面添加一個元素。對</FONT><FONT SIZE=3>Invalidate</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()的調用將使程序重新顯示數據。</P>
<P ALIGN="JUSTIFY">下面的</FONT><FONT SIZE=3>OnDraw</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()函數讀取并顯示數組。</P>
</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=1><P>void CArrayView::OnDraw(CDC* pDC)</P>
<P>{</P>
<P>    CArrayDoc* pDoc = GetDocument();</P>
<P>    ASSERT_VALID(pDoc);</P>
<P>    // Get the current font's height.</P>
<P>    TEXTMETRIC textMetric;</P>
<P>    pDC-&gt;GetTextMetrics(&amp;textMetric);</P>
<P>    int fontHeight = textMetric.tmHeight;</P>
<P>    // Get the size of the array. </P>
<P>    int count = array.GetSize();</P>
<P>    int displayPos = 10;</P>
<P>    // Display the array data.</P>
<P>    </P>
<P>for (int x=0; x&lt;count; ++x)</P>
<P>    {</P>
<P>        UINT value = array.GetAt(x);</P>
<P>        char s[81];</P>
<P>        wsprintf(s, "Element %d contains the value %u.", x, value);</P>
<P>        pDC-&gt;TextOut(10, displayPos, s);</P>
<P>        displayPos += fontHeight;</P>
<P>    }</P>
<P>}</P>
</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">這里,程序首先獲得當前字體的高度,然后程序通過調用</FONT><FONT SIZE=3>GetSize</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()函數獲得數組元素的個數。最后,使用數組元素的個數控制一個</FONT><FONT SIZE=3>for</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>循環,調用</FONT><FONT SIZE=3>GetAt</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()函數獲得當前下標處的數組元素的值。為了顯示程序將數組元素的值轉化成字符串。</P>
<P ALIGN="JUSTIFY">程序的</FONT><FONT SIZE=3>OnRButtonDown</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()函數用來響應用戶按下鼠標右鍵的事件,此函數用來處理刪除數組元素的任務。下面是該函數的代碼:</P>
</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=1><P>void CArrayView::OnRButtonDown(UINT nFlags, CPoint point) </P>
<P>{</P>
<P>&#9;// TODO: Add your message handler code here and/or call default</P>
<P>    CArrayRemoveDlg dialog(this);</P>
<P>    dialog.m_radio= 1;</P>
<P>    dialog.m_index= 0;</P>
<P>    int result = dialog.DoModal();</P>
<P>    if (result == IDOK)</P>
<P>    {</P>
<P>        if (dialog.m_radio==0)</P>
<P>        &#9;&#9;array.RemoveAll();</P>
<P>        else</P>
<P>            array.RemoveAt(dialog.m_index);</P>
<P>        Invalidate();</P>
<P>    }</P>
<P>&#9;CView::OnRButtonDown(nFlags, point);</P>
<P>}</P>
</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">在這個函數中,當顯示完對話框后,程序檢查對話框的成員變量</FONT><FONT SIZE=3>m_removeAll</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>。如果這個值為真意味著用戶希望刪除數組中所有的元素。這種情況下,程序調用數組類的成員函數</FONT><FONT SIZE=3>RemoveAll</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()。否則,程序將調用</FONT><FONT SIZE=3>RemoveAt</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()刪除指定位置處的數組元素。最后調用</FONT><FONT SIZE=3>Invalidate</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>()函數刷新數據顯示。</P>
<P ALIGN="JUSTIFY">下面將介紹對話框類</FONT><FONT SIZE=3>CArrayAddDlg</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>,按照下面的步驟創建這個對話框類。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">1.&#9;</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>創建如圖</FONT><FONT SIZE=3>10.1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>所示的對話框,</FONT><FONT SIZE=3>3</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>個單選按鈕的</FONT><FONT SIZE=3>ID</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>分別為</FONT><FONT SIZE=3>IDC_ADD0</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3>IDC_ADD1</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3>IDC_ADD2</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>。</P>
<P ALIGN="CENTER"><IMG SRC="Image292.gif" tppabs="http://166.111.167.223/computer/cai/visual_c++_5.0_programming/Image292.gif" WIDTH=247 HEIGHT=154></P>
</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=1><P ALIGN="CENTER">圖</FONT><FONT SIZE=1>10. 1 </FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=1>添加元素對話框</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">2.&#9;</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>在</FONT><FONT SIZE=3>ClassWizard</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>中為兩個文本框映射兩個</FONT><FONT SIZE=3>UINT</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>類型的變量</FONT><FONT SIZE=3>m_index</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3>m_value</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">3.&#9;</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>給該對話框添加一個</FONT><FONT SIZE=3>UINT</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>類型的成員變量</FONT><FONT SIZE=3>m_radio</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">4.&#9;</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>為</FONT><FONT SIZE=3>WM_INITDIALOG</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>添加函數</FONT><FONT SIZE=3>OnInitDialog()</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>,在其中設置單選按鈕的初始狀態。</P>
</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=1><P>BOOL CArrayAddDlg::OnInitDialog() </P>
<P>{</P>
<P>&#9;CDialog::OnInitDialog();</P>
<P>&#9;</P>
<P>&#9;// TODO: Add extra initialization here</P>
<P>&#9;((CButton*)GetDlgItem(IDC_ADD0))-&gt;SetCheck(1);</P>
<P>&#9;return TRUE;  // return TRUE unless you set the focus to a control</P>
<P>&#9;              // EXCEPTION: OCX Property Pages should return FALSE</P>
<P>}</P>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲6080在线| 久久综合九色综合欧美98| 中日韩免费视频中文字幕| 麻豆精品新av中文字幕| 欧美丰满少妇xxxxx高潮对白| 亚洲精品亚洲人成人网在线播放| 亚洲成人手机在线| 欧美日韩在线电影| 国产精品狼人久久影院观看方式| 国产乱码字幕精品高清av | 91精品福利视频| 欧美国产亚洲另类动漫| 久久成人免费网站| 精品国产乱码久久久久久闺蜜| 蜜桃av一区二区在线观看| 日韩欧美国产高清| 国产一区激情在线| 久久综合色8888| 国产69精品久久久久毛片| 国产网站一区二区| zzijzzij亚洲日本少妇熟睡| 亚洲人精品午夜| 欧洲在线/亚洲| 日韩1区2区日韩1区2区| 日韩午夜激情av| 国产一区二区三区久久悠悠色av | 中文字幕视频一区二区三区久| 91在线看国产| 亚洲国产成人porn| 在线成人高清不卡| 极品少妇xxxx精品少妇偷拍| 久久精品视频免费| a在线播放不卡| 午夜精品福利一区二区三区av| 91精品国产麻豆| 天堂午夜影视日韩欧美一区二区| 欧美欧美欧美欧美| 婷婷激情综合网| 国产亚洲婷婷免费| 欧美丝袜自拍制服另类| 精品一区二区三区的国产在线播放| 久久久久久久久岛国免费| 91视频91自| 日韩精品欧美精品| 国产偷v国产偷v亚洲高清| 91久久精品一区二区三| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品乱人伦| 欧美日韩黄色一区二区| 国产美女娇喘av呻吟久久| 亚洲美女免费在线| www久久久久| 在线视频一区二区三| 久久99国产精品久久99| 日韩一区日韩二区| 欧美日本一区二区三区四区| 麻豆91在线播放免费| 亚洲欧洲精品天堂一级| 欧美大片在线观看| 欧美亚洲综合久久| 不卡av在线免费观看| 精品综合免费视频观看| 亚洲精品国产一区二区精华液| 91精品国产综合久久精品麻豆| 国产suv一区二区三区88区| 亚洲v精品v日韩v欧美v专区| 国产精品久久久久一区二区三区 | 欧美色网站导航| 成人免费高清视频在线观看| 蜜臀a∨国产成人精品| 一区二区三区蜜桃网| 日本一区二区三区在线不卡| 日韩一区二区在线播放| 欧美无乱码久久久免费午夜一区| 国产ts人妖一区二区| 久久av中文字幕片| 丝袜诱惑制服诱惑色一区在线观看| 亚洲日韩欧美一区二区在线| 日韩一区二区免费高清| 91丨porny丨蝌蚪视频| 国v精品久久久网| 国产精品69毛片高清亚洲| 日韩av成人高清| 亚洲gay无套男同| 亚洲黄色av一区| 国产精品美日韩| 久久精品在这里| www日韩大片| 色婷婷av一区二区三区之一色屋| 国产91在线观看| 国产综合色视频| 久久国产精品免费| 日本欧美韩国一区三区| 亚洲成人av电影| 婷婷久久综合九色综合伊人色| 亚洲精品国产成人久久av盗摄| 中文在线一区二区| 国产精品美女一区二区三区| 国产日韩欧美在线一区| 久久综合九色欧美综合狠狠| 精品福利视频一区二区三区| 欧美精品一二三区| 欧美一区日本一区韩国一区| 91精品视频网| 欧美日韩国产片| 欧美日本一道本| 色狠狠色噜噜噜综合网| 91一区在线观看| 一本到高清视频免费精品| 日本久久电影网| 69精品人人人人| 欧美精品一区二区在线观看| 久久网这里都是精品| 欧美激情艳妇裸体舞| 国产精品国产精品国产专区不蜜 | 狠狠色狠狠色合久久伊人| 日韩中文字幕1| 一级女性全黄久久生活片免费| 中文字幕亚洲不卡| 亚洲444eee在线观看| 夜夜精品视频一区二区| 五月婷婷久久丁香| 国产一区二区影院| 99国产精品久久久久久久久久| 一本在线高清不卡dvd| 欧美午夜精品一区二区三区 | 美女精品一区二区| 韩国成人福利片在线播放| 国产.欧美.日韩| 欧美中文字幕亚洲一区二区va在线| 欧美手机在线视频| 久久久久免费观看| 亚洲韩国精品一区| 国产一区二区伦理片| 日本道色综合久久| 久久亚区不卡日本| 亚洲国产一区二区a毛片| 国产在线不卡一区| 在线免费观看日韩欧美| 久久综合资源网| 一区二区三区在线观看动漫| 国产在线精品一区二区三区不卡| 免费看日韩精品| 国产成人精品www牛牛影视| 国产成人免费在线| 欧美一区日韩一区| 日韩美女啊v在线免费观看| 亚洲国产另类精品专区| 国产黄人亚洲片| 日韩精品最新网址| 亚洲狠狠爱一区二区三区| 国产mv日韩mv欧美| 日韩一区二区三区免费看 | 国产一区二区视频在线播放| 色综合中文字幕国产 | 91在线一区二区| 久久久久久久久久久黄色| 亚洲久本草在线中文字幕| 亚洲综合免费观看高清完整版 | 成人做爰69片免费看网站| 5858s免费视频成人| 欧美日韩免费在线视频| 久久女同性恋中文字幕| 石原莉奈在线亚洲三区| 91小宝寻花一区二区三区| 精品国产成人在线影院| 日韩黄色一级片| 日韩美女在线视频| 亚洲18色成人| 日韩一区二区三区四区| 午夜精品久久久久久久久| 91精品国产综合久久香蕉麻豆| 亚洲欧美日韩国产中文在线| 国产夫妻精品视频| 国产欧美日韩在线观看| 粉嫩aⅴ一区二区三区四区 | 精品国产91久久久久久久妲己| 精品亚洲免费视频| 日韩三级视频中文字幕| 日韩专区中文字幕一区二区| 色8久久人人97超碰香蕉987| 国产精品的网站| 欧美亚洲国产一卡| 亚洲国产精品自拍| 日韩视频免费直播| 精品一区二区三区久久久| 欧美激情中文字幕| 国产综合一区二区| 中文字幕在线一区免费| 欧美在线综合视频| 亚洲资源在线观看| 91精品视频网| 久久电影国产免费久久电影| 欧美丰满嫩嫩电影| 九九国产精品视频| 久久久久国产精品麻豆ai换脸 | 欧美日本一区二区三区| 日本一不卡视频| 国产精品国产三级国产普通话三级| 激情综合亚洲精品|