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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? menuex.cpp

?? VC開發(fā)實(shí)用實(shí)例
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
		if(grayedflag && !m_bDrawOnlyGray)
          Draw3DCheckmark2(pDC, rect2, state&ODS_SELECTED,&m_brLightBackground,
                        state&ODS_CHECKED ? info.hbmpChecked :
                        info.hbmpUnchecked);
		else
          Draw3DCheckmark2(pDC, rect2, state&ODS_SELECTED,&m_brBackground,
                        state&ODS_CHECKED ? info.hbmpChecked :
                        info.hbmpUnchecked);
      }
    }

    //This is needed always so that we can have the space for check marks

    x0=rect.left;y0=rect.top;
    rect.left = rect.left + m_iconX + 8 + GAP; 

    if(!strText.IsEmpty())
	{
      CRect rectt(rect.left,rect.top-1,rect.right,rect.bottom-1);

      //   Find tabs

      CString leftStr,rightStr;
      leftStr.Empty();rightStr.Empty();
      int tablocr=strText.ReverseFind(_T('\t'));
      if(tablocr!=-1)
	  {
        rightStr=strText.Mid(tablocr+1);
        leftStr=strText.Left(strText.Find(_T('\t')));
        rectt.right-=m_iconX;
      }
      else leftStr=strText;

      int iOldMode = pDC->GetBkMode();
      pDC->SetBkMode( TRANSPARENT);

      // Draw the text in the correct colour:

      UINT nFormat  = DT_LEFT|DT_SINGLELINE|DT_VCENTER;
      UINT nFormatr = DT_RIGHT|DT_SINGLELINE|DT_VCENTER;
      if(!(lpDIS->itemState & ODS_GRAYED))
	  {
        pDC->SetTextColor(crText);
        pDC->DrawText (leftStr,rectt,nFormat);
        if(tablocr!=-1) pDC->DrawText (rightStr,rectt,nFormatr);
      }
      else
	  {
        // Draw the disabled text
        if(!(state & ODS_SELECTED))
		{
          RECT offset = *rectt;
          offset.left+=1;
          offset.right+=1;
          offset.top+=1;
          offset.bottom+=1;
          pDC->SetTextColor(GetSysColor(COLOR_BTNHILIGHT));
          pDC->DrawText(leftStr,&offset, nFormat);
          if(tablocr!=-1) pDC->DrawText (rightStr,&offset,nFormatr);
          pDC->SetTextColor(GetSysColor(COLOR_GRAYTEXT));
          pDC->DrawText(leftStr,rectt, nFormat);
          if(tablocr!=-1) pDC->DrawText (rightStr,rectt,nFormatr);
        }
        else
		{
        // And the standard Grey text:
          pDC->SetTextColor(m_clrBack);
          pDC->DrawText(leftStr,rectt, nFormat);
          if(tablocr!=-1) pDC->DrawText (rightStr,rectt,nFormatr);
        }
      }
      pFont = pDC->SelectObject (&dispFont);
      pDC->SetBkMode( iOldMode );
      pDC->SelectObject (pFont); //set it to the old font
    }

    m_penBack.DeleteObject();
    m_brBackground.DeleteObject();
    m_fontMenu.DeleteObject();
    m_brSelect.DeleteObject();
    dispFont.DeleteObject ();
  }
  m_brLightBackground.DeleteObject();
}


/*
==========================================================================
void CMenuEx::MeasureItem(LPMEASUREITEMSTRUCT)
---------------------------------------------

Called by the framework when it wants to know what the width and height
of our item will be.  To accomplish this we provide the width of the
icon plus the width of the menu text, and then the height of the icon.
 
==========================================================================
*/

void CMenuEx::MeasureItem( LPMEASUREITEMSTRUCT lpMIS )
{
  UINT state = (((CMenuExData*)(lpMIS->itemData))->nFlags);
  UINT grayed= (((CMenuExData*)(lpMIS->itemData))->nFlagsEx) & MF_DRAWGRAYED;
  UINT larrow= (((CMenuExData*)(lpMIS->itemData))->nFlagsEx) & MF_LASTARROW;
  /*if ((!m_bEnableArrows) && (state & MF_POPUP))
  {
	  CMenuEx* pMenu=this;
	  int t=FindMenuPos((CMenuExData*) (lpMIS->itemData),pMenu);
	  if (t>=0)grayed=CheckIfGrayed(pMenu->GetSubMenu(t));
  }*/
  if (larrow)
  {
	  if(m_bDrawGrayed || !m_bShowLastArrow)
	  {
		lpMIS->itemWidth = 0;
		lpMIS->itemHeight = 0;
		return;
	  }
  }
#ifdef ASK_APP_DRAW
  CWinAppEx* app=(CWinAppEx*)AfxGetApp();
  ASSERT(app->IsKindOf(RUNTIME_CLASS(CWinAppEx)));
  if (grayed && !app->CheckForGrayedMenuPaint())
#else
  if (grayed && !m_bDrawGrayed) 
#endif
  {
    lpMIS->itemWidth = 0;
    lpMIS->itemHeight = 0;
	return;
  }
  if(state & MF_SEPARATOR && !((((CMenuExData*)(lpMIS->itemData))->nFlagsEx) & MF_LASTARROW))
  {
    lpMIS->itemWidth = 0;
    lpMIS->itemHeight = GetSystemMetrics(SM_CYMENU)>>1;
  }
  else{
    CFont m_fontMenu;
    LOGFONT m_lf;
    ZeroMemory ((PVOID) &m_lf,sizeof (LOGFONT));
    NONCLIENTMETRICS nm;
    nm.cbSize = sizeof (NONCLIENTMETRICS);
    VERIFY(SystemParametersInfo(SPI_GETNONCLIENTMETRICS,
           nm.cbSize,&nm,0)); 
    m_lf =  nm.lfMenuFont;
    m_fontMenu.CreateFontIndirect (&m_lf);

    // Obtain the width of the text:
    CWnd *pWnd = AfxGetMainWnd();            // Get main window
    CDC *pDC = pWnd->GetDC();              // Get device context
    CFont* pFont;    // Select menu font in...
    
    if (IsNewShell())
        pFont = pDC->SelectObject (&m_fontMenu);// Select menu font in...
        
    //Get pointer to text SK
    const wchar_t *lpstrText = ((CMenuExData*)(lpMIS->itemData))->GetWideString();//SK: we use const to prevent misuse
    
        
    SIZE size;

    if (Win32s!=g_Shell)
      VERIFY(::GetTextExtentPoint32W(pDC->m_hDC,lpstrText,
             wcslen(lpstrText),&size)); //SK should also work on 95
#ifndef UNICODE //can't be UNICODE for Win32s
    else{//it's Win32suckx
      RECT rect;
      rect.left=rect.top=0;
      size.cy=DrawText(pDC->m_hDC,(LPCTSTR)lpstrText,
                       wcslen(lpstrText),&rect,
                       DT_SINGLELINE|DT_LEFT|DT_VCENTER|DT_CALCRECT);
      //+3 makes at least three pixels space to the menu border
      size.cx=rect.right-rect.left+3;
      size.cx += 3*(size.cx/wcslen(lpstrText));
    }
#endif    

    CSize t = CSize(size);
    if(IsNewShell())
      pDC->SelectObject (pFont);  // Select old font in
    AfxGetMainWnd()->ReleaseDC(pDC);  // Release the DC

    // Set width and height:

    lpMIS->itemWidth = m_iconX + t.cx + m_iconX + GAP;
    int temp = GetSystemMetrics(SM_CYMENU);
    lpMIS->itemHeight = temp>m_iconY+4 ? temp : m_iconY+4;
    m_fontMenu.DeleteObject();
  }
}

void CMenuEx::SetIconSize (int width, int height)
{
  m_iconX = width;
  m_iconY = height;
}

BOOL CMenuEx::AppendODMenuA(LPCSTR lpstrText,UINT nFlags,UINT nID,
                           int nIconNormal,int nFlagsEx)
{
	CHAR chr='\0';
	if (!lpstrText)lpstrText=&chr;
	USES_CONVERSION;
	return AppendODMenuW(A2W(lpstrText),nFlags,nID,nIconNormal,nFlagsEx);//SK: See MFC Tech Note 059
}


BOOL CMenuEx::AppendODMenuW(wchar_t *lpstrText,UINT nFlags,UINT nID,
                           int nIconNormal,int nFlagsEx)
{
  // Add the MF_OWNERDRAW flag if not specified:
  WCHAR chr='\0';
  if (!lpstrText)lpstrText=&chr;
  if(!nID)nFlags=MF_SEPARATOR|MF_OWNERDRAW;
  
  nFlags |= MF_OWNERDRAW;

  CMenuExData *mdata = new CMenuExData;
  m_MenuList.Add(mdata);
  mdata->SetWideString(lpstrText);    //SK: modified for dynamic allocation
  
  mdata->menuIconNormal = nIconNormal;
  mdata->xoffset=-1;
  if(nIconNormal>=0){
    mdata->xoffset=0;
    LoadFromToolBar(nID,nIconNormal,mdata->xoffset);
    if(mdata->bitmap)mdata->bitmap->DeleteImageList();
    else mdata->bitmap=new(CImageList);
    mdata->bitmap->Create(m_iconX,m_iconY,ILC_COLORDDB|ILC_MASK,1,1);
    AddBitmapToImageList(mdata->bitmap,nIconNormal);
  }
  mdata->nFlags = nFlags;
  mdata->nFlagsEx=nFlagsEx;
  mdata->nID = nID;
  return(CMenu::AppendMenu(nFlags, nID, (LPCTSTR)mdata));
}


BOOL CMenuEx::ModifyODMenuA(const char * lpstrText,UINT nID,int nIconNormal, int nFlagsEx)
{
USES_CONVERSION;
return ModifyODMenuW(A2W(lpstrText),nID,nIconNormal,nFlagsEx);//SK: see MFC Tech Note 059
}

BOOL CMenuEx::ModifyODMenuW(wchar_t *lpstrText,UINT nID,int nIconNormal, int nFlagsEx)
{
  int nLoc;
  CMenuExData *mdata;

  // Find the old CMenuExData structure:
  CMenuEx *psubmenu = FindMenuOption(nID,nLoc);
  if(psubmenu && nLoc>=0)
	  mdata = psubmenu->m_MenuList[nLoc];
  else{
  // Create a new CMenuExData structure:
    mdata = new CMenuExData;
    m_MenuList.Add(mdata);
  }
  ASSERT(mdata);
  if(lpstrText)
     mdata->SetWideString(lpstrText);  //SK: modified for dynamic allocation
  mdata->menuIconNormal = nIconNormal;
  mdata->xoffset=-1;
  if(nIconNormal>=0){
    mdata->xoffset=0;
    LoadFromToolBar(nID,nIconNormal,mdata->xoffset);
    if(mdata->bitmap)mdata->bitmap->DeleteImageList();
    else mdata->bitmap=new(CImageList);
    mdata->bitmap->Create(m_iconX,m_iconY,ILC_COLORDDB|ILC_MASK,1,1);
    AddBitmapToImageList(mdata->bitmap,nIconNormal);
  }
  mdata->nFlags = MF_BYCOMMAND | MF_OWNERDRAW;
  mdata->nID = nID;
  if(nFlagsEx>=0) mdata->nFlagsEx=nFlagsEx;
  return (CMenu::ModifyMenu(nID,mdata->nFlags,nID,(LPCTSTR)mdata));
}


BOOL CMenuEx::ModifyODMenuA(const char *lpstrText,const char *OptionText,
                           int nIconNormal, int nFlagsEx)
{
USES_CONVERSION;
return ModifyODMenuW(A2W(lpstrText),A2W(OptionText),nIconNormal,nFlagsEx);//SK: see MFC  Tech Note 059
}


BOOL CMenuEx::ModifyODMenuW(wchar_t *lpstrText,wchar_t *OptionText,
                           int nIconNormal, int nFlagsEx)
{
  CMenuExData *mdata;

  // Find the old CMenuExData structure:
  mdata=FindMenuOption(OptionText);
  if(mdata){
    if(nFlagsEx>=0) mdata->nFlagsEx=nFlagsEx;
    if(lpstrText)
        mdata->SetWideString(lpstrText);//SK: modified for dynamic allocation
    mdata->menuIconNormal = nIconNormal;
    mdata->xoffset=-1;
    if(nIconNormal>=0){
      mdata->xoffset=0;
      if(mdata->bitmap)mdata->bitmap->DeleteImageList();
      else mdata->bitmap=new(CImageList);
      mdata->bitmap->Create(m_iconX,m_iconY,ILC_COLORDDB|ILC_MASK,1,1);
      AddBitmapToImageList(mdata->bitmap,nIconNormal);
    }
    return(TRUE);
  }
  return(FALSE);
}

CMenuExData *CMenuEx::NewODMenu(UINT pos,UINT nFlags,UINT nID,CString string)
{
  CMenuExData *mdata;

  mdata = new CMenuExData;
  mdata->menuIconNormal = -1;
  mdata->xoffset=-1;
  #ifdef UNICODE
  mdata->SetWideString((LPCTSTR)string);//SK: modified for dynamic allocation
  #else
  mdata->SetAnsiString(string);
  #endif
  mdata->nFlags = nFlags;
  mdata->nID = nID;
  
  
  if (nFlags&MF_OWNERDRAW){
    ASSERT(!(nFlags&MF_STRING));
    ModifyMenu(pos,nFlags,nID,(LPCTSTR)mdata);
  }
  else if (nFlags&MF_STRING){
    ASSERT(!(nFlags&MF_OWNERDRAW));
    ModifyMenu(pos,nFlags,nID,mdata->GetString());
  }
  else{
    ASSERT(nFlags&MF_SEPARATOR);
    ModifyMenu(pos,nFlags,nID);
  }

  return(mdata);
};

BOOL CMenuEx::LoadToolbars(const UINT *arID,int n)
{
  ASSERT(arID);
  BOOL bRet=TRUE;
  for(int i=0;i<n;++i)
    bRet |= LoadToolbar(arID[i]);
  return(bRet);
}

BOOL CMenuEx::LoadToolbar(UINT nToolBar)
{
  UINT nID;
  BOOL returnflag=FALSE;
  CToolBar bar;

  bar.Create(AfxGetMainWnd());
  if(bar.LoadToolBar(nToolBar)){
    for(int i=0;i<bar.GetCount();++i){
      nID = bar.GetItemID(i); 
      if(nID && GetMenuState(nID, MF_BYCOMMAND)
        !=0xFFFFFFFF)ModifyODMenu(NULL,nID,nToolBar);
    }
    returnflag=TRUE;
  }
  return(returnflag);
}

BOOL CMenuEx::LoadFromToolBar(UINT nID,UINT nToolBar,int& xoffset)
{
  int xset,offset;
  UINT nStyle;
  BOOL returnflag=FALSE;
  CToolBar bar;

  bar.Create(AfxGetMainWnd());
  if(bar.LoadToolBar(nToolBar)){
    offset=bar.CommandToIndex(nID);
    if(offset>=0){
      bar.GetButtonInfo(offset,nID,nStyle,xset);
      if(xset>0)xoffset=xset;
      returnflag=TRUE;
    }
  }
  return(returnflag);
}

CMenuEx *CMenuEx::FindMenuOption(int nId,int& nLoc)
{
  int i;
  CMenuEx *psubmenu,*pgoodmenu;

  for(i=0;i<(int)(CMenu::GetMenuItemCount());++i){
#ifdef _CPPRTTI 
	  psubmenu=dynamic_cast<CMenuEx *>(CMenu::GetSubMenu(i));
#else
    psubmenu=(CMenuEx *)CMenu::GetSubMenu(i);
#endif
    if(psubmenu){
      pgoodmenu=psubmenu->FindMenuOption(nId,nLoc);
      if(pgoodmenu)return(pgoodmenu);
    }
    else if(nId==(int)GetMenuItemID(i)){
      nLoc=i;
      return(this);
    }
  }
  nLoc = -1;
  return(NULL);
}

CMenuExData *CMenuEx::FindMenuOption(wchar_t *lpstrText)
{
  int i;
  CMenuEx *psubmenu;
  CMenuExData *pmenulist;

  for(i=0;i<(int)(CMenu::GetMenuItemCount());++i){
#ifdef _CPPRTTI 
    psubmenu=dynamic_cast<CMenuEx *>(CMenu::GetSubMenu(i));
#else
    psubmenu=(CMenuEx *)CMenu::GetSubMenu(i);
#endif
    if(psubmenu){
      pmenulist=psubmenu->FindMenuOption(lpstrText);
      if(pmenulist)return(pmenulist);
    }
    else{
      const wchar_t *szWide;//SK: we use const to prevent misuse of this Ptr
      for(i=0;i<=m_MenuList.GetUpperBound();++i){     
        szWide = m_MenuList[i]->GetWideString ();
        if(szWide && !wcscmp(lpstrText,szWide))//SK: modified for dynamic allocation
          return(m_MenuList[i]);
      }
    }
  }
  return(NULL);
}


BOOL CMenuEx::LoadMenu(int nResource)
{
  return(CMenuEx::LoadMenu(MAKEINTRESOURCE(nResource)));
};

BOOL CMenuEx::LoadMenu(LPCTSTR lpszResourceName)
{
	//DestroyMenu();
	if(!PreLoadMenu(lpszResourceName)) return FALSE;
	return PostLoadMenu();
}

void CMenuEx::InsertSpaces(void)
{
  int i,j,numitems,maxlength;
  CString string,newstring;
  CSize t;
  CFont m_fontMenu;
  LOGFONT m_lf;

  ZeroMemory ((PVOID) &m_lf,sizeof (LOGFONT));
  NONCLIENTMETRICS nm;
  nm.cbSize = sizeof (NONCLIENTMETRICS);
  VERIFY (SystemParametersInfo (SPI_GETNONCLIENTMETRICS,nm.cbSize,&nm,0)); 
  m_lf =  nm.lfMenuFont;
  m_fontMenu.CreateFontIndirect (&m_lf);

  CWnd *pWnd = AfxGetMainWnd();  
  CDC *pDC = pWnd->GetDC();
  CFont* pFont = pDC->SelectObject (&m_fontMenu);
  
  numitems=CMenu::GetMenuItemCount();
  maxlength = -1;
  for(i=0;i<numitems;++i){
    string=m_MenuList[i]->GetString();
    j=string.Find((char)9);
    newstring.Empty();
    if(j!=-1)newstring.Left(j);
    else newstring=string;
    newstring+=_T(" ");//SK: modified for Unicode correctness. 
    LPCTSTR lpstrText = (LPCTSTR)newstring;
    t=pDC->GetTextExtent(lpstrText,_tcslen(lpstrText));
    if(t.cx>maxlength)maxlength = t.cx;
  }
  for(i=0;i<numitems;++i){
    string=m_MenuList[i]->GetString();

    j=string.Find((char)9);
    if(j!=-1){
      newstring.Empty();
      newstring=string.Left(j);
      LPCTSTR lpstrText = (LPCTSTR)(newstring);
      t=pDC->GetTextExtent(lpstrText,_tcslen(lpstrText));
      while(t.cx<maxlength){
        newstring+=_T(' ');//SK: modified for Unicode correctness
        LPCTSTR lpstrText = (LPCTSTR)(newstring);
        t=pDC->GetTextExtent(lpstrText,_tcslen(lpstrText));
      }
      newstring+=string.Mid(j);
#ifdef UNICODE      
      m_MenuList[i]->SetWideString(newstring);//SK: modified for dynamic allocation
#else
      m_MenuList[i]->SetAnsiString(newstring);
#endif
    }
  }
  pDC->SelectObject (pFont);              // Select old font in
  AfxGetMainWnd()->ReleaseDC(pDC);       // Release the DC
  m_fontMenu.DeleteObject();

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av影视在线观看| 日韩一区二区免费在线观看| 国产精品88av| 国产老肥熟一区二区三区| 韩国av一区二区三区在线观看| 热久久国产精品| 蜜桃91丨九色丨蝌蚪91桃色| 日韩电影在线一区二区三区| 日韩福利电影在线| 毛片av一区二区| 国产一区二区三区在线观看免费| 极品少妇xxxx精品少妇| 国产一区二区日韩精品| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 色狠狠av一区二区三区| 色综合久久久久综合99| 欧美在线视频日韩| 欧美男女性生活在线直播观看| 欧美日韩国产片| 欧美一级午夜免费电影| 久久综合九色综合久久久精品综合 | 国产一区二区在线看| 91精品国产色综合久久| 日韩视频一区在线观看| 久久久精品免费网站| 中文字幕一区二区三区四区不卡 | 欧美在线观看视频一区二区| 欧美日韩视频在线第一区 | 国产91高潮流白浆在线麻豆 | 国产传媒日韩欧美成人| 成年人国产精品| 欧美视频你懂的| 欧美岛国在线观看| 国产欧美日韩在线视频| 亚洲欧美电影一区二区| 亚洲影视在线播放| 久草在线在线精品观看| 成人午夜精品在线| 欧美三级视频在线观看| 欧美刺激午夜性久久久久久久| 欧美激情在线看| 一区二区三区电影在线播| 免费成人av在线| 成人丝袜18视频在线观看| 在线观看免费成人| 久久久国产精华| 伊人色综合久久天天人手人婷| 青青青爽久久午夜综合久久午夜| 国产一区二区在线观看视频| 在线观看成人小视频| 精品国产髙清在线看国产毛片| 国产精品美女视频| 青青青爽久久午夜综合久久午夜| 成人午夜电影小说| 欧美一区二区私人影院日本| 国产农村妇女毛片精品久久麻豆| 亚洲成人在线免费| 成人avav在线| 欧美一级日韩免费不卡| 亚洲桃色在线一区| 精品中文字幕一区二区| 欧美在线|欧美| 亚洲国产精品v| 美女免费视频一区二区| 91精品1区2区| 国产人妖乱国产精品人妖| 偷拍自拍另类欧美| 色综合久久中文字幕综合网| 久久久久久免费网| 美腿丝袜亚洲色图| 欧美三级午夜理伦三级中视频| 国产欧美日韩中文久久| 久久成人免费日本黄色| 欧美日韩免费电影| 亚洲男人都懂的| 粉嫩久久99精品久久久久久夜| 日韩一级精品视频在线观看| 一区二区三区国产精华| jlzzjlzz亚洲日本少妇| 久久久午夜电影| 美美哒免费高清在线观看视频一区二区| 99久久精品免费看国产免费软件| 久久日一线二线三线suv| 日韩电影在线一区二区三区| 在线免费不卡视频| 亚洲视频图片小说| 成人午夜看片网址| 亚洲国产精品精华液2区45| 久久99热这里只有精品| 欧美精品精品一区| 亚洲午夜免费电影| 在线观看日韩精品| 一区二区成人在线观看| 99久久精品国产麻豆演员表| 久久久91精品国产一区二区精品| 另类人妖一区二区av| 91精品国产aⅴ一区二区| 亚洲成av人片在线| 欧美三级蜜桃2在线观看| 亚洲永久免费av| 欧美天天综合网| 亚洲国产精品久久久久秋霞影院| 日本道精品一区二区三区| 亚洲三级电影网站| 色综合久久天天| 亚洲狠狠丁香婷婷综合久久久| 91网页版在线| 夜夜精品浪潮av一区二区三区| 日本精品视频一区二区| 成人小视频在线| 欧美高清一级片在线观看| 国产aⅴ精品一区二区三区色成熟| 国产亚洲一二三区| 粉嫩蜜臀av国产精品网站| 国产精品福利一区| 色婷婷综合视频在线观看| 亚洲黄一区二区三区| 欧美日韩一区二区不卡| 日本三级韩国三级欧美三级| 欧美成人官网二区| 国产一区 二区| 国产精品视频免费| 色妞www精品视频| 亚洲电影你懂得| 日韩一级片在线播放| 国产伦理精品不卡| 中文字幕一区二区三| 91福利精品视频| 男女性色大片免费观看一区二区| 日韩欧美成人午夜| 懂色av中文一区二区三区| 亚洲视频中文字幕| 欧美喷潮久久久xxxxx| 韩国精品一区二区| 国产视频视频一区| 在线视频欧美精品| 久久福利资源站| 国产精品污www在线观看| 91福利国产成人精品照片| 日韩av电影免费观看高清完整版 | 一区二区三区在线观看视频| 欧美高清hd18日本| 国产毛片精品视频| 亚洲丝袜自拍清纯另类| 91精选在线观看| 国产不卡视频一区| 亚洲第一在线综合网站| 欧美xxxx老人做受| 色综合 综合色| 久久国产综合精品| 自拍偷拍亚洲综合| 日韩亚洲欧美中文三级| 成人18精品视频| 麻豆传媒一区二区三区| 中文字幕一区二区三区视频| 91精品午夜视频| 成人国产精品免费观看| 日本中文字幕一区二区有限公司| 中文字幕 久热精品 视频在线 | 亚洲激情综合网| 欧美精品一区二区三| 色偷偷成人一区二区三区91| 国内外成人在线视频| 亚洲在线视频网站| 欧美激情在线观看视频免费| 91精品欧美久久久久久动漫| 成人动漫中文字幕| 久久99久久精品| 亚洲国产精品久久久男人的天堂| 国产精品美女久久久久久久| 日韩欧美一级在线播放| 日本韩国欧美在线| 成人97人人超碰人人99| 激情成人综合网| 日本成人中文字幕| 亚洲一区二区三区四区在线免费观看| www国产精品av| 91精品国产麻豆| 欧美三级蜜桃2在线观看| 99精品久久久久久| 国产不卡在线播放| 精品一区二区影视| 日韩高清在线电影| 亚洲成人www| 一区二区三区不卡在线观看 | 欧美日韩亚洲另类| 91影院在线观看| 成人免费观看男女羞羞视频| 老司机精品视频一区二区三区| 亚洲成人精品在线观看| 亚洲精品大片www| 日韩美女视频一区二区 | 亚洲成人av一区二区| 亚洲美女在线国产| 国产精品传媒在线| 欧美国产1区2区| 国产欧美一区二区精品久导航 | 久草精品在线观看| 免费在线观看成人| 蜜臀a∨国产成人精品|