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

首頁 > 學院 > 開發設計 > 正文

MFC:超鏈接文本(重繪CStatic)

2019-11-11 05:46:12
字體:
來源:轉載
供稿:網友

頭文件 XHyperLink.h:

#ifndef XHYPERLINK_H#define XHYPERLINK_Hextern UINT WM_XHYPERLINK_CLICKED;class CXHyperLink : public CStatic{public:    CXHyperLink();    virtual ~CXHyperLink();public:    enum UnderLineOptions { ulHover = -1, ulNone = 0, ulAlways = 1};public:    void SetURL(CString strURL);    CString GetURL() const    {         return m_strURL;     }    void EnableURL(BOOL bFlag) { m_bIsURLEnabled = bFlag; }    BOOL IsURLEnabled() const { return m_bIsURLEnabled; }    void SetColours(COLORREF crLinkColour, COLORREF crVisitedColour, COLORREF crHoverColour = -1);    COLORREF GetLinkColour() const    {         return m_crLinkColour;     }    COLORREF GetVisitedColour() const    {        return m_crVisitedColour;     }    COLORREF GetHoverColour() const    {        return m_crHoverColour;    }    void SetBackgroundColour(COLORREF crBackground);    COLORREF GetBackgroundColour() const    {        return m_crBackground;    }    void SetVisited(BOOL bVisited = TRUE);    BOOL GetVisited() const    {         return m_bVisited;     }    void SetLinkCursor(HCURSOR hCursor);    HCURSOR CXHyperLink::GetLinkCursor() const    {        return m_hLinkCursor;    }    void SetUnderline(int nUnderline = ulHover);    int GetUnderline() const    {         return m_nUnderline;     }    void SetAutoSize(BOOL bAutoSize = TRUE);    BOOL GetAutoSize() const    {         return m_bAdjustToFit;     }    void SetNotifyParent(BOOL bFlag) { m_bNotifyParent = bFlag; }    BOOL GetNotifyParent() const { return m_bNotifyParent; }    void EnableTooltip(BOOL bFlag)     {         m_bToolTip = bFlag;         m_ToolTip.Activate(m_bToolTip);    }    BOOL IsTooltipEmabled() const     {         return m_bToolTip;     }    void SetAlwaysOpenNew(BOOL bFlag)     {         m_bAlwaysOpenNew = bFlag;     }    BOOL GetAlwaysOpenNew() const     {         return m_bAlwaysOpenNew;     }    void SetWindowText(LPCTSTR lpszString);public:    static HINSTANCE GotoURL(LPCTSTR url, int showcmd,  BOOL bAlwaysOpenNew = FALSE);public:    virtual BOOL PReTranslateMessage(MSG* pMsg);    virtual BOOL DestroyWindow();protected:    virtual void PreSubclassWindow();    static LONG GetRegKey(HKEY key, LPCTSTR subkey, LPTSTR retdata);    void NotifyParent();    void PositionWindow();    void ReportError(int nError);    void SetDefaultCursor();protected:    COLORREF        m_crLinkColour;        // Hyperlink colours    COLORREF        m_crVisitedColour;    COLORREF        m_crHoverColour;    // Hover colour    COLORREF        m_crBackground;        // background color    CBrush            m_Brush;            // background brush    BOOL            m_bOverControl;        // cursor over control?    BOOL            m_bVisited;            // Has it been visited?    int                m_nUnderline;        // underline hyperlink?    BOOL            m_bAdjustToFit;        // Adjust window size to fit text?    CString            m_strURL;            // hyperlink URL    CFont            m_UnderlineFont;    // Font for underline display    CFont            m_StdFont;            // Standard font    HCURSOR            m_hLinkCursor;        // Cursor for hyperlink    CToolTipCtrl    m_ToolTip;            // The tooltip    UINT            m_nTimerID;    BOOL            m_bIsURLEnabled;    // TRUE = navigate to url    BOOL            m_bNotifyParent;    // TRUE = notify parent    BOOL            m_bToolTip;            // TRUE = display tooltip    BOOL            m_bAlwaysOpenNew;    // TRUE = always open new browser windowprotected:    afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);    afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);    afx_msg void OnMouseMove(UINT nFlags, CPoint point);    afx_msg BOOL OnEraseBkgnd(CDC* pDC);    afx_msg void OnTimer(UINT nIDEvent);    afx_msg void OnClicked();    DECLARE_MESSAGE_MAP()};#endif //XHYPERLINK_H源文件 XHyperLink.cpp:

#include "stdafx.h"#include "XHyperLink.h"#include "atlconv.h"        // for Unicode conversion#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif#define TOOLTIP_ID 1#ifndef IDC_HAND#define IDC_HAND MAKEINTRESOURCE(32649)   // From WINUSER.H#endifUINT WM_XHYPERLINK_CLICKED = ::RegisterWindowMessage(_T("WM_XHYPERLINK_CLICKED"));BEGIN_MESSAGE_MAP(CXHyperLink, CStatic)    ON_WM_CTLCOLOR_REFLECT()    ON_WM_SETCURSOR()    ON_WM_MOUSEMOVE()    ON_WM_TIMER()    ON_CONTROL_REFLECT(STN_CLICKED, OnClicked)    ON_WM_ERASEBKGND()END_MESSAGE_MAP()CXHyperLink::CXHyperLink(){    m_hLinkCursor     = NULL;            // No cursor as yet    m_crLinkColour    = RGB(0,0,238);    // Blue    m_crVisitedColour = RGB(85,26,139);    // Purple    m_crHoverColour      = RGB(255,0,0);    // Red    m_bOverControl    = FALSE;            // Cursor not yet over control    m_bVisited        = FALSE;            // Hasn't been visited yet.    m_nUnderline      = ulHover;        // Underline the link?    m_bAdjustToFit    = TRUE;            // Resize the window to fit the text?    m_strURL          = _T("");    m_nTimerID        = 100;    m_bNotifyParent   = FALSE;            // TRUE = notify parent    m_bIsURLEnabled   = TRUE;            // TRUE = navigate to url    m_bToolTip        = TRUE;            // TRUE = display tooltip    m_crBackground    = (UINT) -1;        // set to default (no bg color)    m_bAlwaysOpenNew  = FALSE;            // TRUE = always open new browser window}CXHyperLink::~CXHyperLink(){    TRACE(_T("in CXHyperLink::~CXHyperLink/n"));    if (m_hLinkCursor)        DestroyCursor(m_hLinkCursor);    m_hLinkCursor = NULL;    m_UnderlineFont.DeleteObject();    if (m_Brush.GetSafeHandle())        m_Brush.DeleteObject();}BOOL CXHyperLink::DestroyWindow() {    KillTimer(m_nTimerID);    return CStatic::DestroyWindow();}BOOL CXHyperLink::PreTranslateMessage(MSG* pMsg) {    m_ToolTip.RelayEvent(pMsg);    return CStatic::PreTranslateMessage(pMsg);}void CXHyperLink::PreSubclassWindow() {    DWord dwStyle = GetStyle();    ::SetWindowLong(GetSafeHwnd(), GWL_STYLE, dwStyle | SS_NOTIFY);    if (m_strURL.IsEmpty())        GetWindowText(m_strURL);    CString strWndText;    GetWindowText(strWndText);    if (strWndText.IsEmpty())     {        ASSERT(!m_strURL.IsEmpty());    // Window and URL both NULL. DUH!        SetWindowText(m_strURL);    }    CFont* pFont = GetFont();    if (!pFont)    {        HFONT hFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT);        if (hFont == NULL)            hFont = (HFONT) GetStockObject(ANSI_VAR_FONT);        if (hFont)            pFont = CFont::FromHandle(hFont);    }    ASSERT(pFont->GetSafeHandle());    // Create the underline font    LOGFONT lf;    pFont->GetLogFont(&lf);    m_StdFont.CreateFontIndirect(&lf);    lf.lfUnderline = (BYTE) TRUE;    m_UnderlineFont.CreateFontIndirect(&lf);    PositionWindow();        // Adjust size of window to fit URL if necessary    SetDefaultCursor();        // Try and load up a "hand" cursor    SetUnderline();    // Create the tooltip    if (m_bToolTip)    {        CRect rect;         GetClientRect(rect);        m_ToolTip.Create(this);        m_ToolTip.AddTool(this, m_strURL, rect, TOOLTIP_ID);    }    CStatic::PreSubclassWindow();}void CXHyperLink::OnClicked(){    m_bOverControl = FALSE;    int result = HINSTANCE_ERROR + 1;    if (m_bIsURLEnabled)    {        result = (int)GotoURL(m_strURL, SW_SHOW, m_bAlwaysOpenNew);    }    m_bVisited = (result > HINSTANCE_ERROR);    if (!m_bVisited)    {        MessageBeep(MB_ICONEXCLAMATION);     // Unable to follow link        ReportError(result);    }    else    {        SetVisited();                        // Repaint to show visited colour    }    NotifyParent();}#ifdef _DEBUGHBRUSH CXHyperLink::CtlColor(CDC* pDC, UINT nCtlColor) #elseHBRUSH CXHyperLink::CtlColor(CDC* pDC, UINT /*nCtlColor*/) #endif{    ASSERT(nCtlColor == CTLCOLOR_STATIC);    if (m_bOverControl)        pDC->SetTextColor(m_crHoverColour);    else if (m_bVisited)        pDC->SetTextColor(m_crVisitedColour);    else        pDC->SetTextColor(m_crLinkColour);    // transparent text.    pDC->SetBkMode(TRANSPARENT);    if (m_Brush.GetSafeHandle())    {        pDC->SetBkColor(m_crBackground);        return (HBRUSH) m_Brush;    }    else    {        return (HBRUSH)GetStockObject(NULL_BRUSH);    }}void CXHyperLink::OnMouseMove(UINT nFlags, CPoint point) {    if (!m_bOverControl)        // Cursor has just moved over control    {        m_bOverControl = TRUE;        if (m_nUnderline == ulHover)            SetFont(&m_UnderlineFont);        Invalidate();        SetTimer(m_nTimerID, 100, NULL);    }    CStatic::OnMouseMove(nFlags, point);}void CXHyperLink::OnTimer(UINT nIDEvent) {    CPoint p(GetMessagePos());    ScreenToClient(&p);    CRect rect;    GetClientRect(rect);    if (!rect.PtInRect(p))    {        m_bOverControl = FALSE;        KillTimer(m_nTimerID);        if (m_nUnderline != ulAlways)            SetFont(&m_StdFont);        rect.bottom+=10;        InvalidateRect(rect);    }    CStatic::OnTimer(nIDEvent);}BOOL CXHyperLink::OnSetCursor(CWnd* /*pWnd*/, UINT /*nHitTest*/, UINT /*message*/){    if (m_hLinkCursor)    {        ::SetCursor(m_hLinkCursor);        return TRUE;    }    return FALSE;}BOOL CXHyperLink::OnEraseBkgnd(CDC* pDC) {    CRect rect;    GetClientRect(rect);    if (m_crBackground != (UINT)-1)        pDC->FillSolidRect(rect, m_crBackground);    else        pDC->FillSolidRect(rect, ::GetSysColor(COLOR_3DFACE));    return TRUE;}void CXHyperLink::SetURL(CString strURL){    m_strURL = strURL;    if (::IsWindow(GetSafeHwnd()))     {        PositionWindow();        m_ToolTip.UpdateTipText(strURL, this, TOOLTIP_ID);    }}void CXHyperLink::SetColours(COLORREF crLinkColour, COLORREF crVisitedColour, COLORREF crHoverColour /* = -1 */){     m_crLinkColour    = crLinkColour;     m_crVisitedColour = crVisitedColour;    if (crHoverColour == -1)        m_crHoverColour = ::GetSysColor(COLOR_HIGHLIGHT);    else        m_crHoverColour = crHoverColour;    if (::IsWindow(m_hWnd))    {        Invalidate();    }}void CXHyperLink::SetBackgroundColour(COLORREF crBackground){    m_crBackground = crBackground;    if (m_Brush.GetSafeHandle())        m_Brush.DeleteObject();    m_Brush.CreateSolidBrush(m_crBackground);}void CXHyperLink::SetVisited(BOOL bVisited /* = TRUE */) {     m_bVisited = bVisited;     if (::IsWindow(GetSafeHwnd()))        Invalidate(); }void CXHyperLink::SetLinkCursor(HCURSOR hCursor){     m_hLinkCursor = hCursor;    if (m_hLinkCursor == NULL)        SetDefaultCursor();}void CXHyperLink::SetUnderline(int nUnderline /*=ulHover*/){    if (m_nUnderline == nUnderline)        return;    if (::IsWindow(GetSafeHwnd()))    {        if (nUnderline == ulAlways)            SetFont(&m_UnderlineFont);        else            SetFont(&m_StdFont);        Invalidate();     }    m_nUnderline = nUnderline;}void CXHyperLink::SetAutoSize(BOOL bAutoSize /* = TRUE */){    m_bAdjustToFit = bAutoSize;    if (::IsWindow(GetSafeHwnd()))        PositionWindow();}void CXHyperLink::SetWindowText(LPCTSTR lpszString){    ASSERT(lpszString);    if (!lpszString)        return;    CStatic::SetWindowText(_T(""));    RedrawWindow();    CStatic::SetWindowText(lpszString);    PositionWindow();}void CXHyperLink::PositionWindow(){    if (!::IsWindow(GetSafeHwnd()) || !m_bAdjustToFit)         return;    CRect WndRect, ClientRect;    GetWindowRect(WndRect);    GetClientRect(ClientRect);    ClientToScreen(ClientRect);    CWnd* pParent = GetParent();    if (pParent)    {        pParent->ScreenToClient(WndRect);        pParent->ScreenToClient(ClientRect);    }    CString strWndText;    GetWindowText(strWndText);    CDC* pDC = GetDC();    CFont* pOldFont = pDC->SelectObject(&m_UnderlineFont);    CSize Extent = pDC->GetTextExtent(strWndText);    pDC->SelectObject(pOldFont);    ReleaseDC(pDC);    Extent.cx += WndRect.Width() - ClientRect.Width();     Extent.cy += WndRect.Height() - ClientRect.Height();     DWORD dwStyle = GetStyle();    if (dwStyle & SS_CENTERIMAGE)        WndRect.DeflateRect(0, (WndRect.Height() - Extent.cy)/2);    else        WndRect.bottom = WndRect.top + Extent.cy;    if (dwStyle & SS_CENTER)         WndRect.DeflateRect((WndRect.Width() - Extent.cx)/2, 0);    else if (dwStyle & SS_RIGHT)         WndRect.left = WndRect.right - Extent.cx;    else        WndRect.right = WndRect.left + Extent.cx;    SetWindowPos(NULL, WndRect.left, WndRect.top, WndRect.Width(), WndRect.Height(), SWP_NOZORDER);}void CXHyperLink::SetDefaultCursor(){    if (m_hLinkCursor == NULL)    {        TRACE(_T("loading from IDC_HAND/n"));        m_hLinkCursor = AfxGetApp()->LoadStandardCursor(IDC_HAND);        if (m_hLinkCursor == NULL)        {            TRACE(_T("loading from winhlp32/n"));            // Get the windows directory            CString strWndDir;            GetWindowsDirectory(strWndDir.GetBuffer(MAX_PATH), MAX_PATH);            strWndDir.ReleaseBuffer();            strWndDir += _T("//winhlp32.exe");            HMODULE hModule = LoadLibrary(strWndDir);            if (hModule)             {                HCURSOR hHandCursor = ::LoadCursor(hModule, MAKEINTRESOURCE(106));                if (hHandCursor)                {                    m_hLinkCursor = CopyCursor(hHandCursor);                }                FreeLibrary(hModule);            }        }    }}LONG CXHyperLink::GetRegKey(HKEY key, LPCTSTR subkey, LPTSTR retdata){    HKEY hkey;    LONG retval = RegOpenKeyEx(key, subkey, 0, KEY_QUERY_VALUE, &hkey);    if (retval == ERROR_SUCCESS)     {        long datasize = MAX_PATH;        TCHAR data[MAX_PATH];        RegQueryValue(hkey, NULL, data, &datasize);

        _tcscpy_s(retdata, MAX_PATH + 1, data);        RegCloseKey(hkey);    }    return retval;}void CXHyperLink::ReportError(int nError){#ifdef XHYPERLINK_REPORT_ERROR    CString str;    switch (nError)     {    case 0:                            str = "The Operating system is out/nof memory or resources."; break;    case SE_ERR_PNF:                str = "The specified path was not found."; break;    case SE_ERR_FNF:                str = "The specified file was not found."; break;    case ERROR_BAD_FORMAT:            str = "The .EXE file is invalid/n(non-Win32 .EXE or error in .EXE image)."; break;    case SE_ERR_accessDENIED:        str = "The operating system denied/naccess to the specified file."; break;    case SE_ERR_ASSOCINCOMPLETE:    str = "The filename association is/nincomplete or invalid."; break;    case SE_ERR_DDEBUSY:            str = "The DDE transaction could not/nbe completed because other DDE transactions/nwere being processed."; break;    case SE_ERR_DDEFAIL:            str = "The DDE transaction failed."; break;    case SE_ERR_DDETIMEOUT:            str = "The DDE transaction could not/nbe completed because the request timed out."; break;    case SE_ERR_DLLNOTFOUND:        str = "The specified dynamic-link library was not found."; break;    case SE_ERR_NOASSOC:            str = "There is no application associated/nwith the given filename extension."; break;    case SE_ERR_OOM:                str = "There was not enough memory to complete the operation."; break;    case SE_ERR_SHARE:                str = "A sharing violation occurred. ";    default:                        str.Format(_T("Unknown Error (%d) occurred."), nError); break;    }    str = "Unable to open hyperlink:/n/n" + str;    AfxMessageBox(str, MB_ICONEXCLAMATION | MB_OK);#else    UNUSED_ALWAYS(nError);#endif    // XHYPERLINK_REPORT_ERROR}void CXHyperLink::NotifyParent(){    if (m_bNotifyParent)    {        CWnd *pParent = GetParent();        if (pParent && ::IsWindow(pParent->m_hWnd))        {            pParent->SendMessage(WM_XHYPERLINK_CLICKED, GetDlgCtrlID());        }    }}HINSTANCE CXHyperLink::GotoURL(LPCTSTR url, int showcmd, BOOL bAlwaysOpenNew /*= FALSE*/){    if (!url || url[0] == _T('/0'))        return (HINSTANCE) HINSTANCE_ERROR + 1;    TCHAR key[MAX_PATH*2];    TCHAR *verb = _T("open");    if (bAlwaysOpenNew)        verb = _T("new");    HINSTANCE result = ShellExecute(NULL, verb, url, NULL,NULL, showcmd);    if ((UINT)result <= HINSTANCE_ERROR)     {        if (GetRegKey(HKEY_CLASSES_ROOT, _T(".htm"), key) == ERROR_SUCCESS)         {            _tcscat_s(key, _T("//shell//open//command"));            if (GetRegKey(HKEY_CLASSES_ROOT,key,key) == ERROR_SUCCESS)             {                TCHAR *pos;                pos = _tCSStr(key, _T("/"%1/""));                if (pos == NULL)                 {                    pos = _tcsstr(key, _T("%1"));        // Check for %1, without quotes                    if (pos == NULL)                    // No parameter at all...                        pos = key + _tcslen(key)-1;                    else                        *pos = _T('/0');                // Remove the parameter                }                else                {                    *pos = _T('/0');                    // Remove the parameter                }                _tcscat(pos, _T(" "));                _tcscat(pos, url);                USES_CONVERSION;                result = (HINSTANCE) WinExec(T2A(key),showcmd);            }        }    }    return result;}用法:

在對話框頭文件中添加一個繼承CXHyperLink的變量:    CXHyperLink m_ctrlWebStatic;

m_ctrlWebStatic.SetWindowText(_T("百度"));m_ctrlWebStatic.SetURL(_T("www.baidu.com"));


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人激情在线观看| 国产精品国产自产拍高清av水多| 欧美日韩福利在线观看| 3344国产精品免费看| 美女性感视频久久久| 日韩电影第一页| 菠萝蜜影院一区二区免费| 国产亚洲欧洲黄色| 久久久久久久久久国产| 亚洲精品资源美女情侣酒店| 中文亚洲视频在线| 91国产美女在线观看| 国产亚洲aⅴaaaaaa毛片| 国产精品久久久久av| 亚洲精品国产拍免费91在线| 久久久久久久久久亚洲| 日韩av中文字幕在线| 欧美成人自拍视频| 欧美在线视频在线播放完整版免费观看| 精品美女永久免费视频| 欧美一级淫片aaaaaaa视频| 国产成人精品免高潮在线观看| 国产精品日日摸夜夜添夜夜av| 中文字幕在线精品| 欧美精品在线免费观看| 国产日韩欧美在线视频观看| 亚洲白虎美女被爆操| 91精品国产综合久久香蕉最新版| 久久精品成人欧美大片古装| 欧美理论电影网| 日韩电影第一页| 久久影视电视剧免费网站| 欧美激情精品久久久久久变态| 成人性生交xxxxx网站| 色综合久综合久久综合久鬼88| 国产精品最新在线观看| 精品国产91乱高清在线观看| 国产精品99久久久久久人| 亚洲精品在线观看www| 欧美影院成年免费版| 综合欧美国产视频二区| 91免费福利视频| 欧美日韩中国免费专区在线看| 国产精品综合网站| 中文字幕日本欧美| 91九色综合久久| 亚洲国产天堂久久综合| 国产精品亚洲аv天堂网| 亚洲激情视频在线观看| 成人啪啪免费看| 国自产精品手机在线观看视频| 亚洲性猛交xxxxwww| 亚洲午夜久久久久久久| 91成人免费观看网站| 精品久久香蕉国产线看观看gif| 亚洲欧美在线一区二区| 91网站免费观看| 91久久久久久久久久| 亚洲跨种族黑人xxx| 欧美老女人在线视频| 美女啪啪无遮挡免费久久网站| 日本高清久久天堂| 国产黑人绿帽在线第一区| 97超碰蝌蚪网人人做人人爽| 国产精品扒开腿做爽爽爽的视频| 欧美在线视频在线播放完整版免费观看| 欧美成人亚洲成人日韩成人| 欧美激情videos| 亚洲福利视频二区| 国产亚洲激情视频在线| 久久精品久久久久| 一区二区三区回区在观看免费视频| 欧美性xxxxx极品| 亚洲变态欧美另类捆绑| 国产精品久久久久久婷婷天堂| 福利二区91精品bt7086| 精品国产一区二区三区久久狼黑人| 久久精品视频播放| 久久久久久久999| 欧美日韩视频在线| 亚洲欧美日本另类| 亚洲一区中文字幕| 亚洲精品欧美日韩专区| 国产噜噜噜噜噜久久久久久久久| 欧美激情国产日韩精品一区18| 欧洲日本亚洲国产区| 久热精品视频在线观看| 九色精品美女在线| 国产精品久久综合av爱欲tv| 国产91av在线| 日韩av电影国产| 成人久久久久久久| 亚洲自拍偷拍福利| 亚洲男人av在线| 中文在线资源观看视频网站免费不卡| 久久久久久有精品国产| 久久综合伊人77777| 亚洲国产精品人久久电影| 日韩毛片在线观看| 国产精品久久久久久久久久新婚| 久久夜色精品亚洲噜噜国产mv| 欧美中文字幕在线播放| 九九热视频这里只有精品| 亚洲japanese制服美女| 色偷偷av一区二区三区| 91大神在线播放精品| 国产精品高潮粉嫩av| 精品无人区乱码1区2区3区在线| 91最新在线免费观看| 中文字幕日韩在线播放| 亚洲国产精品久久久久久| 欧美日韩电影在线观看| 成人激情电影一区二区| 97在线观看视频| 亚洲国产精品va在线| 亚洲永久在线观看| 国产精品久久一| 亚洲人成网站色ww在线| 日韩精品高清视频| 亚洲а∨天堂久久精品喷水| 久久最新资源网| 欧美日韩一区二区三区| 国产成人免费av电影| 色爱精品视频一区| 久热精品视频在线免费观看| 亚洲激情视频在线观看| 精品亚洲男同gayvideo网站| 成人黄色生活片| 欧美—级高清免费播放| 国产精品综合网站| 亚洲精品国产精品自产a区红杏吧| 国产亚洲视频中文字幕视频| 97久久久久久| 欧美国产日本在线| 精品在线欧美视频| 久久男人av资源网站| 日韩欧美在线视频免费观看| 欧美色另类天堂2015| 久久成人综合视频| 91精品国产自产在线| 欧美xxxx14xxxxx性爽| 亚洲春色另类小说| 成人国产精品一区| 国产精品观看在线亚洲人成网| 国产拍精品一二三| 日韩亚洲成人av在线| 欧美日韩国产一区在线| 91精品国产电影| 国产97人人超碰caoprom| 久久亚洲电影天堂| 92国产精品久久久久首页| 在线精品视频视频中文字幕| 欧美成人国产va精品日本一级| 亚洲国产精品久久91精品| 国产97在线|日韩| 亚洲第一福利视频| 欧美国产精品人人做人人爱| 国产日韩欧美夫妻视频在线观看| 国产91在线播放九色快色| 国产一区二区在线免费| 国产91在线视频| 国产精品小说在线| 欧美xxxx14xxxxx性爽| 国产精品丝袜白浆摸在线|