青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

我住包子山

this->blog.MoveTo("blog.baozishan.in")

VC++編程內幕學習心得(2)--下

接著上回開始

書上的第二個例子

直接貼我略加修改的代碼,后面附有注釋:

void Cfont2View::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)

{//想說的是OnPrepareDC在每次調用OnDraw之前調用,可在里面進行初始化的一些操作

    CRect clientRect;

   

    GetClientRect(clientRect);

    pDC->SetMapMode(MM_ANISOTROPIC);//橫豎比恒定的可變比例映射

    pDC->SetWindowExt(400,450);//窗口范圍固定,視口范圍如下,因此圖像(文字)會根據視口范圍改變比例

    pDC->SetViewportExt(clientRect.right, -clientRect.bottom);//原書第二參數為正,我這里用負數,為了和標準MM_TWIPSx,y方向對上,x+,y-;

    CPoint pt = pDC->GetViewportOrg();

    ASSERT(pt.x==0&&pt.y==0);//pDC->SetViewportOrg(0,0);//原書上這樣寫,應該有點多余,因為初始原點就是0,0;

    CView::OnPrepareDC(pDC, pInfo);

}

void Cfont2View::OnDraw(CDC* pDC)

{//OnDraw函數基本沒有變,只是用了一個nPos來一直計算新的字串位置

    CFont fontT1,fontT2,fontT3,fontT4;

    CFont * pOldFont = NULL;

    TEXTMETRIC tm;

    int nPos = 0;

    fontT1.CreateFont(50,0,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,

        DEFAULT_PITCH|FF_SWISS, TEXT("Arail"));

    pOldFont = pDC->SelectObject(&fontT1);

    pDC->TextOut(0,nPos,TEXT("This is Arial, default width"));

    pDC->GetTextMetrics(&tm);

    nPos-=tm.tmHeight+tm.tmExternalLeading;//找到下一個串的y坐標

    fontT2.CreateFont(50,0,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,

        DEFAULT_PITCH|FF_MODERN, TEXT("Courier"));

    pDC->SelectObject(&fontT2);

    pDC->TextOut(0,nPos,TEXT("This is Courier, default width"));

    pDC->GetTextMetrics(&tm);

    nPos-=tm.tmHeight+tm.tmExternalLeading;

    fontT3.CreateFont(50,10,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,

        DEFAULT_PITCH|FF_ROMAN, TEXT("Courier"));

    pDC->SelectObject(&fontT3);

    pDC->TextOut(0,nPos,TEXT("This is generic Roman, variable width"));

    pDC->GetTextMetrics(&tm);

    nPos-=tm.tmHeight+tm.tmExternalLeading;

        fontT4.CreateFont(50,0,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,

        DEFAULT_PITCH|FF_MODERN, TEXT("LinePrinter"));

    pDC->SelectObject(&fontT4);

    pDC->TextOut(0,nPos,TEXT("This is LinePrinter, default width"));

    pDC->GetTextMetrics(&tm);

    nPos-=tm.tmHeight+tm.tmExternalLeading;

    fontT5.CreateFont(50,0,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,

        DEFAULT_PITCH|FF_MODERN, TEXT("Consolas"));

    pDC->SelectObject(&fontT5);

    pDC->TextOut(0,nPos,TEXT("Consolas Fonts, recommand by VS2005 official"));

    pDC->SelectObject((CFont*)pOldFont);

 

    Cfont2Doc* pDoc = GetDocument();

    ASSERT_VALID(pDoc);

    if (!pDoc)

        return;

    // TODO: 在此處為本機數據添加繪制代碼

}

這個例子大概就是這樣,截圖放出:

clip_image002

看著這個例子覺得字很丑,于是稍微改了一下背景色跟字體,一下就好看多了,呵呵,代碼很簡單.需要在OnDraw或者OnPrepareDC中畫黑色背景,畫字體用CDC::SetBkMode設置透明背景,然后CDC::SetTextColor設置字體顏色為00FF00就可以了,呵呵

clip_image004

接下來就是一個關于深入了解ScrollView的一個例子(第三個例子)

這個例子建立時記得讓ViewCScrollView中繼承

修改OnInitialUpdate()函數

void CgdiView::OnInitialUpdate()

{

    CScrollView::OnInitialUpdate();

 

    CSize sizeTotal(800,1050);

    CSize sizePage(sizeTotal.cx/2,sizeTotal.cy/2);

    CSize sizeLine(sizeTotal.cx/50,sizeTotal.cy/50);

    SetScrollSizes(MM_LOENGLISH, sizeTotal,sizePage,sizeLine);

}

對于CScrollView類我仍然有一些疑惑,自己未能解決.在設置了ScrollSize以后,仍然可以將view拉長導致超出ScrollSize,這樣不會顯示滾動條,我試了半天也沒有解決問題,真的不知道該怎么辦..問題還是留在這里

其他實現如下:

View頭文件添加:

private:

    const CSize m_sizeEllipse;

    CPoint m_pointTopLeft;//橢圓外切矩形左上角坐標

    CSize m_sizeOffset;//鼠標初始點中橢圓時與橢圓外切矩形左上角的偏移

BOOL m_bCaptured;//鼠標按下的標志

Cpp文件實現:

void CgdiView::OnDraw(CDC* pDC)

{

    CBrush brushHatch(HS_DIAGCROSS,RGB(255,0,0));//0xFF0000

    CPoint point(0,0);

    pDC->LPtoDP(&point);

    pDC->SetBrushOrg(point);//繪制畫刷的原點,如果不這樣寫,當滾動條滾動時,默認繪制原點會變為當前區域的坐上點坐標

    pDC->SelectObject(&brushHatch);

    pDC->Ellipse(CRect(m_pointTopLeft,m_sizeEllipse));

    TRACE(TEXT("%d %d\n"),m_pointTopLeft.x,m_pointTopLeft.y);

    pDC->SelectStockObject(BLACK_BRUSH);

    pDC->Rectangle(100,-100,200,-200);//這個矩形為了方便查看重繪矩形,當重繪時候矩黑色矩形部分會出現閃爍

    CgdiDoc* pDoc = GetDocument();

    ASSERT_VALID(pDoc);

    if (!pDoc)

        return;

}

void CgdiView::OnLButtonDown(UINT nFlags, CPoint point)

{

    CRect rectEllipse(m_pointTopLeft, m_sizeEllipse);

    CRgn circle;

 

    CClientDC dc(this);

    OnPrepareDC(&dc);

    dc.LPtoDP(rectEllipse);

    circle.CreateEllipticRgnIndirect(rectEllipse);

    if(circle.PtInRegion(point))

    {

        SetCapture();

        m_bCaptured = TRUE;

        CPoint pointTopLeft(m_pointTopLeft);

        dc.LPtoDP(&pointTopLeft);

        m_sizeOffset = point - pointTopLeft;

        SetCursor(LoadCursor(NULL,IDC_CROSS));

    }

    CScrollView::OnLButtonDown(nFlags, point);

}

 

void CgdiView::OnLButtonUp(UINT nFlags, CPoint point)

{

    if(m_bCaptured)

    {

        ReleaseCapture();

        m_bCaptured = FALSE;

    }

    CScrollView::OnLButtonUp(nFlags, point);

}

 

void CgdiView::OnMouseMove(UINT nFlags, CPoint point)

{

    if(m_bCaptured)

    {

        CClientDC dc(this);

        OnPrepareDC(&dc);

        CRect rectOld(m_pointTopLeft, m_sizeEllipse+CSize(1,-1));

        dc.LPtoDP(rectOld);

        InvalidateRect(rectOld, TRUE);

        m_pointTopLeft = point - m_sizeOffset;

        dc.DPtoLP(&m_pointTopLeft);//注意這里有取地址而CRect沒有,是因為CRect類定義了一個隱式轉換,轉換成LPRECT,CPoint沒定義

        CRect rectNew(m_pointTopLeft, m_sizeEllipse);

        dc.LPtoDP(rectNew);

        InvalidateRect(rectNew,TRUE);

    }

    CScrollView::OnMouseMove(nFlags, point);

}

 

以下則是位圖的基本學習

這一節講位圖

關于創建設備無關位圖DIB.

關于DIB最好的資料是MSDN的幫助.

Windows 的兩種位圖:GDI位圖,DIB.

GDI位圖由MFC庫中的CBitmap類表示.GDI位圖對象中有一個相關聯的windows數據結構,該數據結構由windowsGDI模塊來維護,它是設備相關的.應用程序可以得到GDI位圖數據的一份拷貝,但其中每一位的安排完全依賴顯示設備.設備依賴的限制就是無法通過調制解調器,磁盤傳遞這樣的位圖..

操縱CBitmap跟其他GDI對象是一樣的簡單..

但是MFC并沒有封裝DIB,所以需要用SDK的東西來使用DIB.原始使用DIB我覺得是一件很麻煩的事情,你需要了解一些系統調色板之類的知識,有些Directx的書上ms有寫.讀取一個位圖文件需要先知道他的各種信息,之后根據信息為它建立大小合適的結構存放他的位圖信息,根據這些為位圖設定位圖的調色版,在繪制位圖時有可能需要把位圖調色板讓系統使用,之后再恢復成原始的調色板,很多很復雜的操作..但是,這本書的作者提供給我們了一個他寫的CDib,降低了開發的難度,節省了時間,網上ms有很多CDib的類:

我將附上去它的整個代碼部分,如果能研究好了這部分內容應該會有很大提高,目前我還沒研究太好..只是大概有那么點概念

頭文件直接貼在這兒

// cdib.h declaration for Inside Visual C++ CDib class

 

#ifndef _INSIDE_VISUAL_CPP_CDIB

#define _INSIDE_VISUAL_CPP_CDIB

 

class CDib : public CObject

{

    enum Alloc {noAlloc, crtAlloc, heapAlloc};

    DECLARE_SERIAL(CDib)

public:

    LPVOID m_lpvColorTable;

    HBITMAP m_hBitmap;

    LPBYTE m_lpImage;  // starting address of DIB bits

    LPBITMAPINFOHEADER m_lpBMIH; //  buffer containing the BITMAPINFOHEADER

private:

    HGLOBAL m_hGlobal; // For external windows we need to free;

                       //  could be allocated by this class or allocated externally

    Alloc m_nBmihAlloc;

    Alloc m_nImageAlloc;

    DWORD m_dwSizeImage; // of bits -- not BITMAPINFOHEADER or BITMAPFILEHEADER

    int m_nColorTableEntries;

   

    HANDLE m_hFile;

    HANDLE m_hMap;

    LPVOID m_lpvFile;

    HPALETTE m_hPalette;

public:

    CDib();

    CDib(CSize size, int nBitCount);    // builds BITMAPINFOHEADER

    ~CDib();

    int GetSizeImage() {return m_dwSizeImage;}

    int GetSizeHeader()

        {return sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * m_nColorTableEntries;}

    CSize GetDimensions();

    BOOL AttachMapFile(const char* strPathname, BOOL bShare = FALSE);

    BOOL CopyToMapFile(const char* strPathname);

    BOOL AttachMemory(LPVOID lpvMem, BOOL bMustDelete = FALSE, HGLOBAL hGlobal = NULL);

    BOOL Draw(CDC* pDC, CPoint origin, CSize size);  // until we implemnt CreateDibSection

    HBITMAP CreateSection(CDC* pDC = NULL);

    UINT UsePalette(CDC* pDC, BOOL bBackground = FALSE);

    BOOL MakePalette();

    BOOL SetSystemPalette(CDC* pDC);

    BOOL Compress(CDC* pDC, BOOL bCompress = TRUE); // FALSE means decompress

    HBITMAP CreateBitmap(CDC* pDC);

    BOOL Read(CFile* pFile);

    BOOL ReadSection(CFile* pFile, CDC* pDC = NULL);

    BOOL Write(CFile* pFile);

    void Serialize(CArchive& ar);

    void Empty();

   

    BOOL CDib::DrawDib(CDC* pDC, CPoint origin, CSize size);

private:

    void DetachMapFile();

    void ComputePaletteSize(int nBitCount);

    void ComputeMetrics();

};

#endif // _INSIDE_VISUAL_CPP_CDIB

兩個構造函數:

CDib();

CDib(CSize size, int nBitCount);    // builds BITMAPINFOHEADER

第一個沒有參數的構造函數建立一個空的DIB對象,用來從文件或內存載入DIB.

第二個帶有高寬,顏色位數的構造函數,可以用它的CreateSection,得到DIBSection.

其他Public的成員函數:

BOOL AttachMapFile(const char* strPathname, BOOL bShare = FALSE);

BOOL AttachMemory(LPVOID lpvMem, BOOL bMustDelete = FALSE, HGLOBAL hGlobal = NULL);

從內存映射文件讀出位圖/從內存地址,有可能需要用全局句柄(HGLOBAL)讀出位圖

BOOL Compress(CDC* pDC, BOOL bCompress = TRUE); // FALSE means decompress

壓縮,解壓縮位圖

BOOL CopyToMapFile(const char* strPathname);

建立一個映射文件把當前DIB內容復制過去,當文件對象關閉時(CDib對象析構)真正寫入文件..

...省略很多函數說明,有問題可以查書,呵呵,下面介紹應用CDib的方法

 

注意要鏈接"VFW32.lib,因為在CDib中有(#include <vfw.h>)

使用CDib的方法:

調用Draw之前需要做的

m_pDib->UsePalette(pDC); // could be in palette msg handler

CSize sizeDib = m_pDib->GetDimensions();

pDC->StretchBlt(0, 0, sizeDib.cx, sizeDib.cy, &m_dcMem,

                0, 0, sizeToDraw.cx, sizeToDraw.cy, SRCCOPY);

DIB的例子在下面:

建立工程使用的是CScrollView視圖,

    CDib m_dibFile;

    CDib m_dibResource;

兩個成員函數,分別從資源文件載入位圖和從(映射)文件載入位圖

void CEx06dView::OnInitialUpdate()//初始化滾動條跟映射模式,載入資源視圖

{

    CScrollView::OnInitialUpdate();

    CSize sizeTotal(30000, 40000); // 30-by-40 cm

    CSize sizeLine = CSize(sizeTotal.cx / 100, sizeTotal.cy / 100);

    SetScrollSizes(MM_HIMETRIC, sizeTotal, sizeTotal, sizeLine);

 

    LPVOID lpvResource = (LPVOID) ::LoadResource(NULL,

        ::FindResource(NULL, MAKEINTRESOURCE(IDB_GOHAN),

                       RT_BITMAP));

    m_dibResource.AttachMemory(lpvResource); // no need for

                                             //  ::LockResource

    CClientDC dc(this);

    TRACE("bits per pixel = %d\n", dc.GetDeviceCaps(BITSPIXEL));

 

}

OnDraw函數,使用了兩個dib類型,第一個用SDK,StretchDIBits繪制圖像,第二個用CDib類型繪制圖像

void CEx06dView::OnDraw(CDC* pDC)

{

    CEx06dDoc* pDoc = GetDocument();

    BeginWaitCursor();

    m_dibResource.UsePalette(pDC); // should be in palette

    m_dibFile.UsePalette(pDC);     //  message handlers, not here

    pDC->TextOut(0, 0,

        "Press the left mouse button here to load a file.");

    CSize sizeResourceDib = m_dibResource.GetDimensions();

    sizeResourceDib.cx *= 30;

    sizeResourceDib.cy *= -30;

    //m_dibResource.Draw(pDC, CPoint(0, -800), sizeResourceDib);

    pDC->SetStretchBltMode(COLORONCOLOR);

    StretchDIBits(pDC->GetSafeHdc(),0,-800,sizeResourceDib.cx,sizeResourceDib.cy,0,0,sizeResourceDib.cx/30,sizeResourceDib.cy/-30,

        m_dibResource.m_lpImage,(LPBITMAPINFO)m_dibResource.m_lpBMIH, DIB_RGB_COLORS, SRCCOPY);

    CSize sizeFileDib = m_dibFile.GetDimensions();

    sizeFileDib.cx *= 30;

    sizeFileDib.cy *= -30;

    m_dibFile.Draw(pDC, CPoint(1800, -800), sizeFileDib);

    EndWaitCursor();

 

}

鼠標左鍵點擊事件,你可以使用MEMORY_MAPPED_FILES宏定義,這時候用的是內存映射文件,否則使用的就是文件,對應的CDib方法分別為AttachMapFile, Read..

//#define MEMORY_MAPPED_FILES

void CEx06dView::OnLButtonDown(UINT nFlags, CPoint point)

{

    CFileDialog dlg(TRUE, "bmp", "*.bmp");

    if (dlg.DoModal() != IDOK) {

        return;

    }

#ifdef MEMORY_MAPPED_FILES

    if (m_dibFile.AttachMapFile(dlg.GetPathName(),

            TRUE) == TRUE) { // share

        Invalidate();

    }

 #else

    CFile file;

    file.Open(dlg.GetPathName(), CFile::modeRead);

    if (m_dibFile.Read(&file) == TRUE) {

        Invalidate();

    }

#endif // MEMORY_MAPPED_FILES

    CClientDC dc(this);

    m_dibFile.SetSystemPalette(&dc);

}

clip_image006

對于調色板的使用我并沒有很好的掌握,之后還會看看,如果想差不多會再補上,明天加上最后一小節.

posted on 2007-12-08 18:04 Gohan 閱讀(2053) 評論(2)  編輯 收藏 引用 所屬分類: MFC/SDK

Feedback

# re: VC++編程內幕學習心得(2)--下 2007-12-08 18:15 Gohan

http://www.shnenglu.com/Files/gohan/CDIB.rar
CDIB類下載,包括cpp文件跟頭文件  回復  更多評論   

# re: VC++編程內幕學習心得(2)--下 2007-12-18 21:35 秦歌

頂一下  回復  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲日韩欧美视频一区| 亚洲宅男天堂在线观看无病毒| 欧美一级夜夜爽| 亚洲图片在区色| 国产精品久久毛片a| 欧美一区2区视频在线观看 | 亚洲乱码久久| 亚洲美女电影在线| 国产精品色网| 欧美aⅴ一区二区三区视频| 久久在线免费视频| 日韩视频免费观看高清在线视频| 日韩网站在线观看| 国产午夜精品久久久久久免费视 | 日韩一级欧洲| 亚洲一区欧美激情| 在线观看亚洲| 亚洲精品在线视频| 国产视频一区在线观看| 欧美二区在线观看| 欧美三日本三级三级在线播放| 香蕉av777xxx色综合一区| 亚洲精品欧美激情| 久热精品在线| 欧美成人午夜影院| 亚洲一区二区三区免费观看 | 亚洲一区影院| 亚洲激情影院| 欧美在线日韩精品| 亚洲美女电影在线| 欧美一区二区三区免费看| 亚洲日本激情| 欧美尤物巨大精品爽| 一本大道久久a久久综合婷婷| 欧美一区二区三区免费视频| 99综合电影在线视频| 久久av二区| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲精选成人| 久久久一二三| 久久人91精品久久久久久不卡| 欧美日韩一区二区三区四区在线观看 | 中文精品视频| 免费永久网站黄欧美| 久久精品青青大伊人av| 国产精品成人一区二区网站软件| 亚洲第一中文字幕在线观看| 国产精品亚洲欧美| 日韩视频精品| 一区二区精品在线| 欧美不卡高清| 欧美岛国激情| 亚洲高清精品中出| 久久福利毛片| 久久久噜噜噜久久人人看| 国产精品入口尤物| 亚洲欧美国产日韩天堂区| 亚洲一区二区精品在线| 欧美日韩国产精品专区| 亚洲国产日韩精品| 亚洲人成在线影院| 欧美成人dvd在线视频| 欧美成人午夜77777| 精品不卡一区二区三区| 久久精品一区二区| 久久午夜色播影院免费高清| 国产亚洲精品久久飘花| 欧美专区福利在线| 久久精品一区二区三区中文字幕 | 欧美性大战久久久久| 99精品视频免费全部在线| 这里只有精品视频| 欧美日韩精品不卡| 一区二区三区黄色| 亚洲欧美日韩一区| 国产欧美日韩亚洲精品| 欧美一区二区精品| 欧美freesex交免费视频| 依依成人综合视频| 欧美日韩免费视频| 欧美国产一区视频在线观看| 91久久精品美女高潮| 欧美成人一区二区三区| 亚洲片在线观看| 亚洲香蕉伊综合在人在线视看| 欧美性大战久久久久久久蜜臀| 亚洲欧美日韩国产一区二区| 久久综合久久美利坚合众国| 亚洲国产日韩欧美在线图片 | 亚洲欧美综合| 欧美xx视频| 亚洲午夜激情免费视频| 国产小视频国产精品| 欧美大尺度在线| 亚洲一区二区欧美日韩| 麻豆av一区二区三区久久| av成人天堂| 国内成+人亚洲| 欧美日韩在线播放三区| 欧美自拍偷拍午夜视频| 亚洲精品在线免费| 久久久久青草大香线综合精品| 亚洲破处大片| 国产日韩精品一区观看| 欧美成人一区二区在线| 亚洲欧美在线一区| 亚洲国产精品va| 久久成人免费电影| 99re6这里只有精品| 国产日韩欧美日韩| 欧美日韩黄视频| 美女网站在线免费欧美精品| 亚洲一区二区av电影| 欧美激情一区在线观看| 久久精品日韩欧美| 在线视频欧美一区| 亚洲激情视频在线观看| 国产亚洲在线| 欧美三区不卡| 欧美精品18| 麻豆精品在线观看| 久久精品久久99精品久久| 中国成人在线视频| 亚洲黄色性网站| 蜜臀av性久久久久蜜臀aⅴ| 香蕉亚洲视频| 中国亚洲黄色| 日韩午夜免费| 日韩午夜av| 亚洲日本免费| 亚洲高清三级视频| 黄色一区二区在线观看| 国产亚洲一区二区在线观看| 国产女主播一区| 国产精品久久网站| 国产精品久久久久秋霞鲁丝| 欧美先锋影音| 国产精品系列在线播放| 国产精品区二区三区日本| 欧美性猛交xxxx免费看久久久| 欧美日韩hd| 欧美视频在线观看一区二区| 欧美性视频网站| 国产精品观看| 国产精品私房写真福利视频| 国产欧美欧洲在线观看| 国产精品资源| 国内精品美女av在线播放| 韩国一区二区三区在线观看| 国内免费精品永久在线视频| 国内久久精品| 亚洲大胆人体视频| 91久久精品国产| 一级日韩一区在线观看| 亚洲视频网站在线观看| 欧美第十八页| 欧美午夜精品久久久久久超碰| 免费欧美在线视频| 欧美激情综合| 国产精品人人爽人人做我的可爱| 国产日产欧美精品| 黄色成人在线| 99亚洲一区二区| 亚洲欧美国产毛片在线| 久久久久久久欧美精品| 欧美黄色aa电影| 99pao成人国产永久免费视频| 亚洲综合好骚| 开元免费观看欧美电视剧网站| 欧美日韩国产欧| 国产亚洲欧洲997久久综合| 亚洲第一毛片| 亚洲自拍偷拍视频| 美女日韩欧美| 亚洲视频欧美视频| 久久精品一区二区三区不卡| 欧美另类一区二区三区| 国产午夜精品全部视频在线播放 | 欧美日韩一区二区免费在线观看| 国产女人水真多18毛片18精品视频| 一区二区亚洲| 亚洲在线一区| 亚洲电影免费| 午夜精品一区二区三区电影天堂| 欧美成人国产| 国产一区亚洲一区| 亚洲专区欧美专区| 欧美大秀在线观看| 亚洲女同精品视频| 欧美啪啪一区| 亚洲国产成人在线视频| 性欧美video另类hd性玩具| 亚洲电影av| 久久久久国产精品一区| 国产精品sss| 日韩西西人体444www| 欧美成人一区二区三区| 亚洲欧美国产日韩天堂区| 欧美三区在线视频| 亚洲精品看片|