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

隨筆-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>
            国产日韩欧美在线观看| 久久精品在线视频| 亚洲精品日本| 亚洲一二三区在线观看| 免费在线观看日韩欧美| 美女日韩欧美| 亚洲精品久久久久| 亚洲人成啪啪网站| 91久久精品一区| 亚洲一区在线播放| 欧美一区二区久久久| 久久久综合网站| 欧美视频日韩| 亚洲国产精品悠悠久久琪琪| 99在线|亚洲一区二区| 国产精品99久久久久久久女警| 亚洲一区一卡| 亚洲国产午夜| 免费精品视频| 国产一区二区三区av电影 | 欧美国产日韩在线观看| 亚洲精品国产日韩| 老司机67194精品线观看| 国产精品毛片高清在线完整版| 一区二区视频欧美| 亚洲一区二区三区高清| 国产精品swag| 亚洲黄色尤物视频| 久久狠狠一本精品综合网| 一本久久a久久精品亚洲| 免费亚洲一区二区| 亚洲国产第一| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美专区18| 激情文学一区| 欧美激情成人在线视频| 美女日韩欧美| 一区二区三区精密机械公司 | 老司机aⅴ在线精品导航| 国产日韩欧美在线看| 久久综合激情| 99亚洲精品| 久久亚洲一区二区三区四区| 一区二区亚洲欧洲国产日韩| 久久久噜噜噜久噜久久| 久热精品视频在线免费观看| 亚洲国内自拍| 亚洲午夜精品一区二区三区他趣 | 欧美成黄导航| 欧美日本免费| 亚洲欧美综合一区| 美国十次成人| 亚洲精品美女91| 亚洲欧美中文字幕| 亚洲免费精品| 老司机精品视频网站| 亚洲尤物视频在线| 欧美高清一区| 国产精品va在线播放我和闺蜜| 久久精品国产精品亚洲| 欧美剧在线观看| 毛片一区二区三区| 久久久免费av| 国产欧美在线视频| 一区二区精品国产| 日韩视频免费看| 亚洲欧洲偷拍精品| 亚洲国产91| 久久在线视频| 亚洲成色777777在线观看影院| 国产日韩欧美自拍| 欧美一区二区在线观看| 久久久久久久一区二区三区| 国产精品一区二区在线观看| 一本大道久久a久久精二百| 夜夜精品视频一区二区| 欧美伦理视频网站| 一区二区毛片| 久久久99免费视频| 亚洲激情在线激情| 欧美色视频一区| 亚洲欧美日韩成人高清在线一区| 亚洲一区二区高清视频| 国产精品影片在线观看| 欧美一区二区三区四区在线观看地址| 久久久久一区二区三区四区| 亚洲成色777777女色窝| 欧美精品一区二区三区四区| 中日韩高清电影网| 久久一本综合频道| 亚洲人成人一区二区在线观看 | 亚洲人成在线观看一区二区| 亚洲最新在线视频| 精品成人一区二区三区| 欧美另类高清视频在线| 午夜精品剧场| 在线观看一区二区精品视频| 欧美视频一区在线| 欧美不卡一卡二卡免费版| 亚洲欧美中文字幕| 亚洲香蕉伊综合在人在线视看| 欧美第十八页| 亚洲国产91色在线| 美女999久久久精品视频| 亚洲欧美另类中文字幕| 99国产成+人+综合+亚洲欧美| 一区二区在线视频| 在线欧美不卡| 亚洲精品在线免费观看视频| 亚洲成色777777女色窝| 精品电影一区| 亚洲盗摄视频| 99国产欧美久久久精品| 亚洲国产精品t66y| 一区二区三区高清视频在线观看| 亚洲国产另类久久久精品极度| 亚洲黑丝在线| 亚洲午夜小视频| 久久精品在线| 欧美高清视频一区二区| 亚洲精品日本| 亚洲一区综合| 久久精品亚洲一区二区三区浴池| 久久精品三级| 欧美日本精品一区二区三区| 欧美午夜不卡影院在线观看完整版免费 | 国产手机视频精品| 亚洲国产高清高潮精品美女| 亚洲精品视频在线观看网站| 亚洲一区二区在线播放| 久久只精品国产| 亚洲乱码国产乱码精品精| 香蕉精品999视频一区二区 | 亚洲男人的天堂在线观看| 久久久久久午夜| 亚洲美女毛片| 免费视频一区| 伊人久久大香线蕉av超碰演员| 99av国产精品欲麻豆| 免播放器亚洲一区| 午夜精品久久久| 米奇777在线欧美播放| 欧美超级免费视 在线| 国产一区二区精品久久| 一区二区三区高清在线| 亚洲国产一区二区a毛片| 久久国产福利| 国内自拍一区| 美女被久久久| 欧美成人亚洲| 日韩一区二区精品| 亚洲人成网站777色婷婷| 久久视频在线免费观看| 国产一区二区三区网站| 久久精品免费播放| 久久久久成人精品| 亚洲国产精品99久久久久久久久| 欧美亚洲视频在线观看| 亚洲欧美日韩国产一区二区| 国产一区欧美| 亚洲国语精品自产拍在线观看| 麻豆久久久9性大片| 国产精品99久久久久久久女警| 9l国产精品久久久久麻豆| 国产精品看片你懂得| 久久在线播放| 欧美日韩国产精品专区| 欧美亚洲一区三区| 久久一区二区三区av| 亚洲亚洲精品三区日韩精品在线视频| 一区二区三区福利| 在线观看一区二区精品视频| 玖玖综合伊人| 国产精品久久久久久久久久久久久 | 日韩视频在线免费| 亚洲午夜国产一区99re久久| 亚洲国产精品久久精品怡红院| 亚洲深夜福利| 一本色道久久88综合日韩精品 | 免费永久网站黄欧美| 欧美日韩在线不卡一区| 欧美制服丝袜| 国产精品草莓在线免费观看| 裸体歌舞表演一区二区| 国产日产欧美一区| 亚洲一区二区视频在线| 日韩亚洲欧美一区二区三区| 久久国产精品99国产| 久久天堂国产精品| 精品1区2区3区4区| 久久天天狠狠| 欧美激情女人20p| 亚洲精品一区二区三区99| 免费欧美日韩| 亚洲久色影视| 欧美日韩成人在线播放| 99国产精品视频免费观看一公开| 亚洲视频精品在线| 国产精品日韩欧美一区二区| 亚洲免费在线观看|