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

隨筆-162  評論-223  文章-30  trackbacks-0
   關于cstatic控件的自繪,網上也有很多的代碼及文章,更有其界面畫得很漂亮的、多種多樣的功能。近來我自行封裝實現了一個真彩色靜態框類,目標初衷是從顏色、字體、光標入手,改變原始標準cstatic的色彩風格,使界面初步美化,具有好看的效果。同時作為一個基礎簡單的類來維護,為后續的功能增強及美化提供參考擴展,這個CColorStatic類的特點及功能如下:
(1)文本、文本背景、控件背景的顏色,支持3種狀態(正常時、鼠標在上、鼠標按下)下不同顏色的設定,具體實現使用了掩碼機制,形如SetXXXColor名稱的函數接口,每種函數對不同狀態下顏色的設定是很靈活的。
(2)字體設定,提供粗體、斜體、下劃線基本屬性,能調整字體名稱和大小。
(3)光標設定,支持自定義光標(資源ID或名稱)、系統光標。具體實現使用帶LR_SHARED標志的LoadImage來裝載光標,因此對于共享光標不能調用DestroyCursor銷毀,也不必在這里銷毀。
(4)透明設定,支持文本背景和控件背景的透明。
(5)只是繪制文本(凡和文本有關的樣式都考慮進該類中實現),不考慮邊框、形狀及圖形圖像的繪制。
(6)繪制工作在WM_PAINT而非WM_CTLCOLOR消息中實現。
   實現效果如下截圖,從左到右依次是正常、鼠標在上、鼠標按下、文本背景透明、控件背景透明5種情況。
                   

   下面來看看該類的接口代碼,如下所示
  1class CColorStatic : public CStatic
  2{
  3    DECLARE_DYNAMIC(CColorStatic)
  4
  5    enum  
  6    {
  7        COLOR_NORMAL=0,
  8        COLOR_HOVER,
  9        COLOR_PRESSED,
 10        COLOR_MAX_NUM
 11    }
;
 12    enum 
 13    {
 14        BOLD_MASK=1,
 15        ITALIC_MASK=2,
 16        UNDERLINE_MASK=4
 17    }
;
 18
 19public:
 20    enum 
 21    {
 22        stateNormal=1,
 23        stateHover=2,
 24        statePressed=4,
 25        stateAll=7
 26    }
;
 27
 28public:
 29    CColorStatic();
 30    virtual ~CColorStatic();
 31
 32public:
 33   void SetTextColor(COLORREF color,UINT uStateFlag=stateAll);
 34   void SetTextBkColor(COLORREF color,UINT uStateFlag=stateAll);
 35   void SetBkColor(COLORREF color,UINT uStateFlag=stateAll);
 36   
 37   void GetTextColor(COLORREF* color,UINT uStateFlag=stateAll);
 38   void GetTextBkColor(COLORREF* color,UINT uStateFlag=stateAll);
 39   void GetBkColor(COLORREF* color,UINT uStateFlag=stateAll);
 40
 41   BOOL SetBold(BOOL bBold,BOOL bRedraw=TRUE);
 42   BOOL SetItalic(BOOL bItalic,BOOL bRedraw=TRUE);
 43   BOOL SetUnderline(BOOL bUnderline,BOOL bRedraw=TRUE);
 44   BOOL SetFont(LOGFONT& logFont,BOOL bRedraw=TRUE);
 45   BOOL SetFont(CFont& font,BOOL bRedraw=TRUE);
 46   BOOL SetFont(LPCTSTR lpFaceName,int nPointSize,BOOL bRedraw=TRUE);
 47   
 48   BOOL IsBold() const
 49   return m_mask&BOLD_MASK; }
 50
 51   BOOL IsItalic() const
 52   return m_mask&ITALIC_MASK; }
 53
 54   BOOL IsUnderline() const
 55   return m_mask&UNDERLINE_MASK; }
 56
 57   CFont* GetFont()
 58   return &m_font; }
 59
 60   const CFont* GetFont() const
 61   return &m_font; }
 62
 63   BOOL SetCursor(LPCTSTR lpName);
 64   BOOL SetCursor(UINT uID);
 65   void SetCursor(HCURSOR hCursor)
 66   {  m_hCursor = hCursor;  }
 67
 68   HCURSOR GetCursor() const
 69   {  return m_hCursor; }
 70
 71   void SetTextBkTransparent(BOOL bTransparent);
 72   void SetBkTransparent(BOOL bTransparent);
 73
 74protected:
 75    DECLARE_MESSAGE_MAP()
 76    afx_msg void OnMouseMove(UINT nFlags, CPoint point);
 77    afx_msg void OnPaint();
 78    afx_msg BOOL OnStnClicked();
 79    afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
 80
 81protected:
 82    virtual void PreSubclassWindow();
 83    virtual void PaintBk(CDC* pDC);
 84    virtual void DrawText(CDC* pDC);
 85    virtual void DrawTextColor(CDC* pDC);
 86    virtual void DrawTextBkColor(CDC* pDC);
 87    virtual void DrawBkColor(CDC* pDC);
 88
 89protected:
 90    COLORREF  m_crText[COLOR_MAX_NUM]; 
 91    COLORREF  m_crTextBk[COLOR_MAX_NUM];
 92    COLORREF  m_crBk[COLOR_MAX_NUM];
 93
 94    CFont    m_font;
 95    HCURSOR  m_hCursor;
 96    UINT     m_mask;
 97    BOOL     m_bHover;
 98    BOOL     m_bPressed;
 99    BOOL     m_bTextBkTransparent;
100    BOOL     m_bBkTransparent;
101
102    CDC      m_dcBk;
103    CBitmap     m_bmpBk;
104    CBitmap* m_pbmpOldBk;
105}
;
   類的方法接口,就不多講了,因為很簡單。最后列出它的實現代碼,如下所示 
  1IMPLEMENT_DYNAMIC(CColorStatic, CStatic)
  2
  3CColorStatic::CColorStatic()
  4:m_mask(0)
  5,m_bHover(FALSE)
  6,m_bPressed(FALSE)
  7,m_bTextBkTransparent(FALSE)
  8,m_bBkTransparent(FALSE)
  9,m_hCursor(NULL)
 10{
 11    for(int i=0;i<COLOR_MAX_NUM;++i)
 12    {
 13        m_crText[i]=GetSysColor(COLOR_BTNTEXT);
 14        m_crTextBk[i]=GetSysColor(COLOR_BTNFACE);
 15        m_crBk[i]=GetSysColor(COLOR_BTNFACE);
 16    }

 17}

 18
 19CColorStatic::~CColorStatic()
 20{
 21    if (m_dcBk.m_hDC && m_pbmpOldBk)
 22        m_dcBk.SelectObject(m_pbmpOldBk);
 23}

 24
 25BEGIN_MESSAGE_MAP(CColorStatic, CStatic)
 26    ON_CONTROL_REFLECT_EX(STN_CLICKED,OnStnClicked)
 27    ON_WM_MOUSEMOVE()
 28    ON_WM_PAINT()
 29    ON_WM_SETCURSOR()
 30END_MESSAGE_MAP()
 31
 32void CColorStatic::SetTextColor(COLORREF color,UINT uStatusFlag)
 33{
 34    if (uStatusFlag&stateNormal)
 35        m_crText[COLOR_NORMAL] = color;
 36    if (uStatusFlag&stateHover)
 37        m_crText[COLOR_HOVER] = color;
 38    if (uStatusFlag&statePressed)
 39        m_crText[COLOR_PRESSED] = color;
 40}

 41
 42void CColorStatic::SetTextBkColor(COLORREF color,UINT uStatusFlag)
 43{
 44    if (uStatusFlag&stateNormal)
 45        m_crTextBk[COLOR_NORMAL] = color;
 46    if (uStatusFlag&stateHover)
 47        m_crTextBk[COLOR_HOVER] = color;
 48    if (uStatusFlag&statePressed)
 49        m_crTextBk[COLOR_PRESSED] = color;
 50}

 51
 52void CColorStatic::SetBkColor(COLORREF color,UINT uStatusFlag)
 53{
 54    if (uStatusFlag&stateNormal)
 55        m_crBk[COLOR_NORMAL] = color;
 56    if (uStatusFlag&stateHover)
 57        m_crBk[COLOR_HOVER] = color;
 58    if (uStatusFlag&statePressed)
 59        m_crBk[COLOR_PRESSED] = color;
 60}

 61
 62void CColorStatic::GetTextColor(COLORREF* color,UINT uStateFlag)
 63{
 64    if (uStateFlag&stateNormal)
 65        *color++ = m_crText[COLOR_NORMAL];
 66    if (uStateFlag&stateHover)
 67        *color++ = m_crText[COLOR_HOVER];
 68    if (uStateFlag&statePressed)
 69        *color = m_crText[COLOR_PRESSED];
 70}

 71
 72void CColorStatic::GetTextBkColor(COLORREF* color,UINT uStateFlag)
 73{
 74    if (uStateFlag&stateNormal)
 75        *color++ = m_crTextBk[COLOR_NORMAL];
 76    if (uStateFlag&stateHover)
 77        *color++ = m_crTextBk[COLOR_HOVER];
 78    if (uStateFlag&statePressed)
 79        *color = m_crTextBk[COLOR_PRESSED];
 80}

 81
 82void CColorStatic::GetBkColor(COLORREF* color,UINT uStateFlag)
 83{
 84    if (uStateFlag&stateNormal)
 85        *color++ = m_crBk[COLOR_NORMAL];
 86    if (uStateFlag&stateHover)
 87        *color++ = m_crBk[COLOR_HOVER];
 88    if (uStateFlag&statePressed)
 89        *color = m_crBk[COLOR_PRESSED];
 90}

 91
 92BOOL CColorStatic::SetBold(BOOL bBold,BOOL bRedraw)
 93{
 94    ASSERT((HFONT)m_font);
 95    bBold ? (m_mask|=BOLD_MASK):(m_mask&=~BOLD_MASK);
 96    LOGFONT lf;
 97    m_font.GetLogFont(&lf);
 98    lf.lfWeight = (m_mask&BOLD_MASK)?FW_BOLD:FW_NORMAL;
 99    return SetFont(lf,bRedraw);
100}

101
102BOOL CColorStatic::SetItalic(BOOL bItalic,BOOL bRedraw)
103{
104    ASSERT((HFONT)m_font);
105    bItalic ? (m_mask|=ITALIC_MASK):(m_mask&=~ITALIC_MASK);
106    LOGFONT lf;
107    m_font.GetLogFont(&lf);
108    lf.lfItalic = (m_mask&ITALIC_MASK)?TRUE:FALSE;
109    return SetFont(lf,bRedraw);
110}

111
112BOOL CColorStatic::SetUnderline(BOOL bUnderline,BOOL bRedraw)
113{
114    ASSERT((HFONT)m_font);
115    bUnderline ? (m_mask|=UNDERLINE_MASK):(m_mask&=~UNDERLINE_MASK);
116    LOGFONT lf;
117    m_font.GetLogFont(&lf);
118    lf.lfUnderline = (m_mask&UNDERLINE_MASK)?TRUE:FALSE;
119    return SetFont(lf,bRedraw);
120}

121
122BOOL CColorStatic::SetFont(CFont& font,BOOL bRedraw)
123{
124    ASSERT((HFONT)font);
125    LOGFONT lf;
126    font.GetLogFont(&lf);
127    return SetFont(lf,bRedraw);
128}

129
130BOOL CColorStatic::SetFont(LOGFONT& logFont,BOOL bRedraw)
131{
132    m_font.DeleteObject();
133    if (!m_font.CreateFontIndirect(&logFont))
134        return FALSE;
135    if (bRedraw) RedrawWindow();
136    return TRUE;
137}

138
139BOOL CColorStatic::SetFont(LPCTSTR lpFaceName,int nPointSize,BOOL bRedraw)
140{
141    ASSERT((HFONT)m_font);
142    LOGFONT lf;
143    m_font.GetLogFont(&lf);
144    if (lpFaceName)
145    {
146        _tcsncpy(lf.lfFaceName, lpFaceName, sizeof(lf.lfFaceName)/sizeof(TCHAR)-1);
147    }

148    lf.lfHeight = GetFontHeight(nPointSize);
149    return SetFont(lf, bRedraw);
150}

151
152void CColorStatic::SetTextBkTransparent(BOOL bTransparent)
153{
154    m_bTextBkTransparent = bTransparent;
155    RedrawWindow();
156}

157
158void CColorStatic::SetBkTransparent(BOOL bTransparent)
159{
160    m_bBkTransparent = bTransparent;
161    RedrawWindow();
162}

163
164BOOL CColorStatic::SetCursor(UINT uID)
165{
166    return SetCursor(MAKEINTRESOURCE(uID));
167}

168
169BOOL CColorStatic::SetCursor(LPCTSTR lpName)
170{
171    m_hCursor = (HCURSOR)::LoadImage(AfxFindResourceHandle(lpName, RT_GROUP_CURSOR),
172                                    lpName,IMAGE_CURSOR,0,0,LR_SHARED);
173    return NULL!=m_hCursor;
174}

175
176//////////////////////////////////////////////////////////////////////////
177void CColorStatic::PreSubclassWindow()
178{
179    CFont* pFont = GetFont();
180    if (NULL==pFont||NULL==pFont->GetSafeHandle())
181    {
182        HFONT hFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
183        if (NULL==hFont)
184            hFont = (HFONT) GetStockObject(ANSI_VAR_FONT);
185        if (hFont)
186            pFont = CFont::FromHandle(hFont);
187    }

188    ASSERT(pFont->GetSafeHandle());
189
190    LOGFONT lf;
191    pFont->GetLogFont(&lf);
192    m_font.CreateFontIndirect(&lf);
193    ModifyStyle(0,SS_NOTIFY);
194
195    CStatic::PreSubclassWindow();
196}

197
198//////////////////////////////////////////////////////////////////////////
199BOOL CColorStatic::OnStnClicked()
200{
201    m_bPressed = TRUE;
202    RedrawWindow();
203    return FALSE;
204}

205
206void CColorStatic::OnMouseMove(UINT nFlags, CPoint point)
207{
208    CStatic::OnMouseMove(nFlags, point);
209
210    if (m_bHover) 
211    {
212        CRect rect;
213        GetClientRect(rect);
214        if (!rect.PtInRect(point))
215        {
216            m_bPressed = m_bHover = FALSE;
217            ReleaseCapture();
218            RedrawWindow();
219        }

220    }

221    else                      
222    {
223        m_bHover = TRUE;
224        RedrawWindow();
225        SetCapture();
226    }

227}

228
229BOOL CColorStatic::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
230{
231    if (NULL!=m_hCursor)
232    {
233        ::SetCursor(m_hCursor);
234        return TRUE;
235    }
 
236    return CStatic::OnSetCursor(pWnd, nHitTest, message);
237}

238
239void CColorStatic::PaintBk(CDC* pDC)
240{
241    CClientDC clDC(GetParent());
242    CRect rect;
243
244    GetClientRect(rect);
245    ClientToScreen(&rect);
246    GetParent()->ScreenToClient(&rect);
247
248    if (m_dcBk.m_hDC == NULL)
249    {
250        m_dcBk.CreateCompatibleDC(&clDC);
251        m_bmpBk.CreateCompatibleBitmap(&clDC, rect.Width(), rect.Height());
252        m_pbmpOldBk = m_dcBk.SelectObject(&m_bmpBk);
253        m_dcBk.BitBlt(00, rect.Width(), rect.Height(), &clDC, rect.left, rect.top, SRCCOPY);
254    }

255    pDC->BitBlt(0,0,rect.Width(),rect.Height(),&m_dcBk,0,0,SRCCOPY);
256}

257
258void CColorStatic::DrawTextColor(CDC* pDC)
259{
260    ASSERT(pDC);
261    if (m_bPressed)
262        pDC->SetTextColor(m_crText[COLOR_PRESSED]);
263    else if (m_bHover)
264        pDC->SetTextColor(m_crText[COLOR_HOVER]);
265    else
266        pDC->SetTextColor(m_crText[COLOR_NORMAL]);
267}

268
269void CColorStatic::DrawTextBkColor(CDC* pDC)
270{
271    ASSERT(pDC);
272    if (m_bPressed)
273        pDC->SetBkColor(m_crTextBk[COLOR_PRESSED]);
274    else if (m_bHover)
275        pDC->SetBkColor(m_crTextBk[COLOR_HOVER]);
276    else
277        pDC->SetBkColor(m_crTextBk[COLOR_NORMAL]);
278    pDC->SetBkMode(m_bTextBkTransparent?TRANSPARENT:OPAQUE);
279}

280
281void CColorStatic::DrawBkColor(CDC* pDC)
282{
283    ASSERT(pDC);
284    COLORREF color;
285    if (m_bPressed)
286        color = m_crBk[COLOR_PRESSED];
287    else if (m_bHover)
288        color = m_crBk[COLOR_HOVER];
289    else
290        color = m_crBk[COLOR_NORMAL];
291
292    CRect cr;
293    GetClientRect(cr); 
294    CBrush brush(color);
295    pDC->FillRect(&cr, &brush);    
296}

297
298void CColorStatic::DrawText(CDC* pDC)
299{
300    ASSERT(pDC);
301    DrawTextColor(pDC);
302    DrawTextBkColor(pDC);
303
304    CRect rect;
305    GetClientRect(rect); 
306
307    CFont* pOldFont = pDC->SelectObject(&m_font);
308    CString strText;
309    GetWindowText(strText);
310
311    UINT nFormat = 0;
312    DWORD dwStyle = GetStyle();
313
314    if (dwStyle & SS_CENTER)
315        nFormat |= DT_CENTER;
316    else if (dwStyle & SS_LEFT)
317        nFormat |= DT_LEFT;
318    else if (dwStyle & SS_RIGHT)
319        nFormat |= DT_RIGHT;
320
321    if (dwStyle & SS_CENTERIMAGE)
322        nFormat |= DT_VCENTER | DT_SINGLELINE;
323
324    pDC->DrawText(strText, rect, nFormat);
325    pDC->SelectObject(pOldFont);
326}

327
328void CColorStatic::OnPaint()
329{
330    CPaintDC dc(this);
331
332    if (m_bBkTransparent)
333        PaintBk(&dc);
334    else
335        DrawBkColor(&dc);
336
337    DrawText(&dc);
338}
posted on 2011-12-18 00:54 春秋十二月 閱讀(3777) 評論(1)  編輯 收藏 引用 所屬分類: C/C++

評論:
# re: 真彩色靜態框CColorStatic類的設計實現 2012-05-31 22:06 | zhan zhan zhan
我也寫了個類似的,沒那么多功能呵呵  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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级片网站| 亚洲一区二区三区激情| 久久久久久久久久码影片| 久久av一区二区三区亚洲| 欧美激情小视频| 一区在线影院| 欧美一区二区三区婷婷月色| 欧美高清视频一区二区三区在线观看 | 久久久久国产一区二区| 99视频一区二区三区| 麻豆精品视频在线观看视频| 国语自产精品视频在线看8查询8| 亚洲视频在线观看网站| 欧美成人午夜| 免费亚洲一区| 亚洲国产一成人久久精品| 久久电影一区| 一区二区日韩| 国产精品二区三区四区| 日韩一级黄色大片| 亚洲高清久久| 欧美91大片| 亚洲剧情一区二区| 欧美国产日韩视频| 免费亚洲电影在线| 亚洲精品小视频在线观看| 欧美国产精品日韩| 欧美精品成人一区二区在线观看 | 欧美精品日本| 一本色道久久综合亚洲精品不卡| 亚洲欧洲精品一区二区| 最新热久久免费视频| 欧美中文日韩| 国产欧美1区2区3区| 欧美一区在线视频| 欧美在线短视频| 亚洲精品一区在线观看| 夜夜嗨av一区二区三区中文字幕| 欧美午夜免费影院| 亚洲高清不卡一区| 日韩一级网站| 亚洲国产精品久久久久久女王| 亚洲精品视频免费在线观看| 国产精品毛片一区二区三区| 欧美中文字幕第一页| 欧美肥婆在线| 猫咪成人在线观看| 国产精品高潮呻吟久久av黑人| 久久久国产亚洲精品| 欧美日韩国产精品| 久久精品国产亚洲a| 久久久精品欧美丰满| 亚洲综合电影一区二区三区| 久久久久9999亚洲精品| 欧美一区二区黄色| 欧美日韩中文精品| 亚洲精品一区二区网址| 欧美成人一区二区| 美女91精品| 黑人巨大精品欧美一区二区| 亚洲免费视频观看| 亚洲男人影院| 欧美视频在线观看视频极品| 国内激情久久| 欧美一区91| 久久五月天婷婷| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲欧美偷拍卡通变态| 亚洲欧美日韩精品久久奇米色影视| 久久免费国产精品| 免费视频一区二区三区在线观看| 国产日韩在线看| 欧美一区二区三区精品| 午夜精品在线观看| 欧美影院成人| 亚洲欧美日韩国产综合| 欧美成人视屏| 久久精品综合| 亚洲精品日韩在线观看| 亚洲高清在线观看一区| 亚洲福利专区| 黄色另类av| 久久嫩草精品久久久精品| 欧美一区二区三区在线免费观看| 亚洲伊人一本大道中文字幕| 日韩系列欧美系列| 久久一区二区三区四区| 午夜一区二区三区不卡视频| 欧美激情偷拍| 亚洲麻豆国产自偷在线| 久久都是精品| 亚洲人久久久| 亚洲天堂黄色| 国产精品综合| 久久精品亚洲精品| 国产日韩欧美一二三区| 欧美一区日韩一区| 毛片一区二区| 久久精品99无色码中文字幕| 亚洲欧美日韩一区在线观看| 国产精品视频网址| 欧美在线啊v| 99精品热视频| 久久亚洲国产精品一区二区| 亚洲精品国产品国语在线app| 欧美精品在线观看91| 亚洲伦理中文字幕| 亚洲精品一区二区三区在线观看 | 国产精品久久国产三级国电话系列| 亚洲欧美成人综合| 蜜臀99久久精品久久久久久软件 | 一二三四社区欧美黄| 美女日韩欧美| 欧美中在线观看| 亚洲精品日本| 狠狠色狠狠色综合| 国产精品久久久久国产精品日日| 欧美精品一区二区三区视频| 在线综合+亚洲+欧美中文字幕| 欧美韩国在线| 欧美顶级少妇做爰| 久久精品成人一区二区三区蜜臀| 中国日韩欧美久久久久久久久| 欧美亚洲成人网| 欧美激情女人20p| 欧美成人国产va精品日本一级| 午夜欧美大尺度福利影院在线看| 亚洲精选视频在线| 亚洲另类视频| 黄色亚洲网站| 黄色成人91| 亚洲大胆人体在线| 亚洲黄色在线| 日韩一级免费| 一区二区三区欧美视频| 99在线热播精品免费99热| 亚洲国产成人91精品| 亚洲电影专区| 亚洲精品永久免费精品| 夜夜嗨av色一区二区不卡| 日韩一区二区免费高清| 制服丝袜激情欧洲亚洲| 宅男精品导航| 欧美在线一级va免费观看| 在线免费观看欧美| 精品91视频| 亚洲免费av片| 亚洲欧美日韩电影| 久久久久国产精品www| 久久婷婷久久| 亚洲人在线视频| 午夜国产欧美理论在线播放 | 亚洲欧洲精品一区二区三区| 99精品热6080yy久久| 西瓜成人精品人成网站| 久久偷看各类wc女厕嘘嘘偷窃| 欧美不卡视频一区发布| 国产精品久久中文| 亚洲国产天堂网精品网站| 午夜宅男久久久| 亚洲电影激情视频网站| 午夜精品免费视频| 欧美激情va永久在线播放| 国产精品热久久久久夜色精品三区| 国产精品网站在线| 伊人成人开心激情综合网| 欧美黄色视屏| 国产精品永久免费视频| 亚洲美女视频网| 免费视频亚洲| 久久大逼视频| 国内精品一区二区| 欧美亚洲三区| 亚洲高清免费在线| 亚洲自拍高清| 国产精品女主播一区二区三区| 最新国产の精品合集bt伙计| 久久精品日产第一区二区| 亚洲一区二区欧美日韩| 国产精品人成在线观看免费| 欧美主播一区二区三区| 午夜精品久久久久久久99水蜜桃| 国产精品国产自产拍高清av王其 | 亚洲视频视频在线| 国产精品ⅴa在线观看h| 亚洲理伦电影| 91久久极品少妇xxxxⅹ软件| 美日韩在线观看| 亚洲美女av电影| 91久久精品一区二区三区| 欧美专区在线观看一区| 亚洲国产视频一区| 亚洲精品偷拍| 国产亚洲欧美另类中文| 欧美一区二区国产| 久久久免费精品| 在线一区亚洲|