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

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

?? menuex.cpp

?? VC開發(fā)實用實例
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
}

void CMenuEx::LoadCheckmarkBitmap(int unselect, int select)
{
  if(unselect>=0 && select>=0){
    m_selectcheck=select;
    m_unselectcheck=unselect;
    if(checkmaps)checkmaps->DeleteImageList();
    else checkmaps=new(CImageList);
    checkmaps->Create(m_iconX,m_iconY,TRUE,2,1);
    AddBitmapToImageList(checkmaps,unselect);
    AddBitmapToImageList(checkmaps,select);
  }
}

BOOL CMenuEx::GetMenuText(UINT id, CString& string)
{
  BOOL returnflag=FALSE;

  UINT numMenuItems = m_MenuList.GetUpperBound();
  if(id<=numMenuItems){
    string=m_MenuList[id]->GetString();
    returnflag=TRUE;
  }
  return(returnflag);
}

void CMenuEx::DrawRadioDot(CDC *pDC,int x,int y,COLORREF color)
{
  CRect rcDot(x,y,x+6,y+6);
  CBrush brush;
  CPen pen;
  brush.CreateSolidBrush(color);
  pen.CreatePen(PS_SOLID,0,color);
  pDC->SelectObject(&brush);
  pDC->SelectObject(&pen);
  pDC->Ellipse(&rcDot);
  pen.DeleteObject();
  brush.DeleteObject();
}

void CMenuEx::DrawCheckMark(CDC* pDC,int x,int y,COLORREF color)
{
  pDC->SetPixel(x,y+2,color);
  pDC->SetPixel(x,y+3,color);
  pDC->SetPixel(x,y+4,color);

  pDC->SetPixel(x+1,y+3,color);
  pDC->SetPixel(x+1,y+4,color);
  pDC->SetPixel(x+1,y+5,color);

  pDC->SetPixel(x+2,y+4,color);
  pDC->SetPixel(x+2,y+5,color);
  pDC->SetPixel(x+2,y+6,color);

  pDC->SetPixel(x+3,y+3,color);
  pDC->SetPixel(x+3,y+4,color);
  pDC->SetPixel(x+3,y+5,color);

  pDC->SetPixel(x+4,y+2,color);
  pDC->SetPixel(x+4,y+3,color);
  pDC->SetPixel(x+4,y+4,color);

  pDC->SetPixel(x+5,y+1,color);
  pDC->SetPixel(x+5,y+2,color);
  pDC->SetPixel(x+5,y+3,color);

  pDC->SetPixel(x+6,y,color);
  pDC->SetPixel(x+6,y+1,color);
  pDC->SetPixel(x+6,y+2,color);
}

CMenuExData *CMenuEx::FindMenuList(UINT nID)
{
  for(int i=0;i<=m_MenuList.GetUpperBound();++i){
    if((UINT)m_MenuList[i]->nID==nID && !m_MenuList[i]->syncflag){
      m_MenuList[i]->syncflag=1;
      return(m_MenuList[i]);
    }
  }
  return(NULL);
}

void CMenuEx::InitializeMenuList(int value)
{
  for(int i=0;i<=m_MenuList.GetUpperBound();++i)
    m_MenuList[i]->syncflag=value;
}

void CMenuEx::DeleteMenuList(void)
{
  for(int i=0;i<=m_MenuList.GetUpperBound();++i){
    if(!m_MenuList[i]->syncflag){
      delete m_MenuList[i];
    }
  }
}

void CMenuEx::SynchronizeMenu(void)
{
  CTypedPtrArray<CPtrArray, CMenuExData*> temp;
  CMenuExData *mdata;
  CString string;
  UINT submenu,nID,state,j;

  InitializeMenuList(0);
  for(j=0;j<CMenu::GetMenuItemCount();++j){
    mdata=NULL;
    state=GetMenuState(j,MF_BYPOSITION);
    if(state&MF_POPUP){
      submenu=(UINT)CMenu::GetSubMenu(j)->m_hMenu;
      mdata=FindMenuList(submenu);
      GetMenuString(j,string,MF_BYPOSITION);
      if(!mdata)mdata=NewODMenu(j,
        state|MF_BYPOSITION|MF_POPUP|MF_OWNERDRAW,submenu,string);
      else if(string.GetLength()>0)
#ifdef UNICODE
        mdata->SetWideString(string);  //SK: modified for dynamic allocation
#else
        mdata->SetAnsiString(string);
#endif
    }
    else if(state&MF_SEPARATOR){
      mdata=FindMenuList(0);
      if(!mdata)mdata=NewODMenu(j,
        state|MF_BYPOSITION|MF_SEPARATOR|MF_OWNERDRAW,0,_T(""));//SK: modified for Unicode correctness
      else ModifyMenu(j,mdata->nFlags,nID,(LPCTSTR)mdata);
    }
    else{
      nID=GetMenuItemID(j);
      mdata=FindMenuList(nID);
      GetMenuString(j,string,MF_BYPOSITION);
      if(!mdata)mdata=NewODMenu(j,state|MF_BYPOSITION|MF_OWNERDRAW,
        nID,string);
      else{
        mdata->nFlags=state|MF_BYPOSITION|MF_OWNERDRAW;
        if(string.GetLength()>0)
#ifdef UNICODE
		    mdata->SetWideString(string);//SK: modified for dynamic allocation
#else
            mdata->SetAnsiString(string);
#endif
            
        ModifyMenu(j,mdata->nFlags,nID,(LPCTSTR)mdata);
      }
    }
    if(mdata)temp.Add(mdata);
  }
  DeleteMenuList();
  m_MenuList.RemoveAll();
  m_MenuList.Append(temp);
  temp.RemoveAll(); 
}

void CMenuEx::UpdateMenu(CMenu *pmenu)
{
#ifdef _CPPRTTI 
  CMenuEx *psubmenu = dynamic_cast<CMenuEx *>(pmenu);
#else
  CMenuEx *psubmenu = (CMenuEx *)pmenu;
#endif
  if(psubmenu)psubmenu->SynchronizeMenu();
}

LRESULT CMenuEx::FindKeyboardShortcut(UINT nChar, UINT nFlags,
                                     CMenu *pMenu)
{
#ifdef _CPPRTTI 
  CMenuEx *pCMenuEx = dynamic_cast<CMenuEx *>(pMenu);
#else
  CMenuEx *pCMenuEx = (CMenuEx *)pMenu;
#endif
  if(pCMenuEx && nFlags&MF_POPUP){
    CString key(_T('&'),2);//SK: modified for Unicode correctness
	key.SetAt(1,(TCHAR)nChar);
	key.MakeLower();
    CString menutext;
    int menusize = (int)pCMenuEx->CMenu::GetMenuItemCount();
    if(menusize!=(pCMenuEx->m_MenuList.GetUpperBound()+1))
      pCMenuEx->SynchronizeMenu();
    for(int i=0;i<menusize;++i){
      if(pCMenuEx->GetMenuText(i,menutext)){
        menutext.MakeLower();
        if(menutext.Find(key)>=0)return(MAKELRESULT(i,2));
      }
    }
  }
  return(0);
}

void CMenuEx::DitherBlt (HDC hdcDest, int nXDest, int nYDest, int nWidth, 
                        int nHeight, HBITMAP hbm, int nXSrc, int nYSrc)
{
  ASSERT(hdcDest && hbm);
  ASSERT(nWidth > 0 && nHeight > 0);
  
  // Create a generic DC for all BitBlts
  HDC hDC = CreateCompatibleDC(hdcDest);
  ASSERT(hDC);
  
  if (hDC)
  {
    // Create a DC for the monochrome DIB section
    HDC bwDC = CreateCompatibleDC(hDC);
    ASSERT(bwDC);
    
    if (bwDC)
    {
      // Create the monochrome DIB section with a black and white palette
      struct {
        BITMAPINFOHEADER bmiHeader; 
        RGBQUAD      bmiColors[2]; 
      } RGBBWBITMAPINFO = {
        
        {    // a BITMAPINFOHEADER
          sizeof(BITMAPINFOHEADER),  // biSize 
            nWidth,         // biWidth; 
            nHeight,        // biHeight; 
            1,            // biPlanes; 
            1,            // biBitCount 
            BI_RGB,         // biCompression; 
            0,            // biSizeImage; 
            0,            // biXPelsPerMeter; 
            0,            // biYPelsPerMeter; 
            0,            // biClrUsed; 
            0            // biClrImportant; 
        },    
        {
          { 0x00, 0x00, 0x00, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }
        } 
      };
      VOID *pbitsBW;
      HBITMAP hbmBW = CreateDIBSection(bwDC,
        (LPBITMAPINFO)&RGBBWBITMAPINFO, DIB_RGB_COLORS, &pbitsBW, NULL, 0);
      ASSERT(hbmBW);
      
      if (hbmBW)
      {
        // Attach the monochrome DIB section and the bitmap to the DCs
        HBITMAP olddib = (HBITMAP)SelectObject(bwDC, hbmBW);
        SelectObject(hDC, hbm);
        
        // BitBlt the bitmap into the monochrome DIB section
        BitBlt(bwDC, 0, 0, nWidth, nHeight, hDC, nXSrc, nYSrc, SRCCOPY);
        
        // Paint the destination rectangle in gray
        FillRect(hdcDest, CRect(nXDest, nYDest, nXDest + nWidth, nYDest +
			nHeight), GetSysColorBrush((IsNewShell())?COLOR_3DFACE:COLOR_MENU));
		            //SK: looks better on the old shell
        // BitBlt the black bits in the monochrome bitmap into COLOR_3DHILIGHT
        // bits in the destination DC
        // The magic ROP comes from the Charles Petzold's book
        HBRUSH hb = CreateSolidBrush(GetSysColor(COLOR_3DHILIGHT));
        HBRUSH oldBrush = (HBRUSH)SelectObject(hdcDest, hb);
        BitBlt(hdcDest,nXDest+1,nYDest+1,nWidth,nHeight,bwDC,0,0,0xB8074A);
        
        // BitBlt the black bits in the monochrome bitmap into COLOR_3DSHADOW
        // bits in the destination DC
        hb = CreateSolidBrush(GetSysColor(COLOR_3DSHADOW));
        DeleteObject(SelectObject(hdcDest, hb));
        BitBlt(hdcDest, nXDest, nYDest, nWidth, nHeight,bwDC,0,0,0xB8074A);
        DeleteObject(SelectObject(hdcDest, oldBrush));
        VERIFY(DeleteObject(SelectObject(bwDC, olddib)));
      }
      
      VERIFY(DeleteDC(bwDC));
    }
    
    VERIFY(DeleteDC(hDC));
  }
}

int CMenuEx::AddBitmapToImageList(CImageList *bmplist,UINT nResourceID)
{
  int bReturn;

  HBITMAP hbmp=LoadSysColorBitmap(nResourceID);
  if(hbmp){
    CBitmap bmp;
    bmp.Attach(hbmp);
    if(m_bitmapBackgroundFlag) bReturn=bmplist->Add(&bmp,m_bitmapBackground);
    else bReturn=bmplist->Add(&bmp,GetSysColor(COLOR_3DFACE));
    bmp.Detach();
    DeleteObject(hbmp);
  }
  else bReturn = -1;
  return(bReturn);
}

void CMenuEx::SetBitmapBackground(COLORREF color)
{
  m_bitmapBackground=color;
  m_bitmapBackgroundFlag=TRUE;
}

void CMenuEx::UnSetBitmapBackground(void)
{
  m_bitmapBackgroundFlag=FALSE;
}

// Given a toolbar, append all the options from it to this menu
// Passed a ptr to the toolbar object and the toolbar ID
// Author : Robert Edward Caldecott
void CMenuEx::AddFromToolBar(CToolBar* pToolBar, int nResourceID)
{
  for (int i = 0; i < pToolBar->GetCount(); i++) {
    UINT nID = pToolBar->GetItemID(i);
    // See if this toolbar option
    // appears as a command on this
    // menu or is a separator
    if (nID == 0 || GetMenuState(nID, MF_BYCOMMAND) == 0xFFFFFFFF)
      continue; // Item doesn't exist
    UINT nStyle;
    int nImage;
    // Get the toolbar button info
    pToolBar->GetButtonInfo(i, nID, nStyle, nImage);
    // OK, we have the command ID of the toolbar
    // option, and the tollbar bitmap offset
    int nLoc;
    CMenuExData* pData;
    CMenuEx *pSubMenu = FindMenuOption(nID, nLoc);
    if (pSubMenu && nLoc >= 0)pData = pSubMenu->m_MenuList[nLoc];
    else {
      // Create a new CMenuExData structure
      pData = new CMenuExData;
      m_MenuList.Add(pData);
    }
    // Set some default structure members
    pData->menuIconNormal = nResourceID;
    pData->nID = nID;
    pData->nFlags =  MF_BYCOMMAND | MF_OWNERDRAW;
    pData->xoffset = nImage;
    if (pData->bitmap)pData->bitmap->DeleteImageList();
    else pData->bitmap = new CImageList;
    pData->bitmap->Create(m_iconX, m_iconY,ILC_COLORDDB|ILC_MASK, 1, 1);
    AddBitmapToImageList(pData->bitmap, nResourceID);
    // Modify our menu
    ModifyMenu(nID,pData->nFlags,nID,(LPCTSTR)pData);
  }
}

BOOL CMenuEx::Draw3DCheckmark(CDC *dc, const CRect& rc,
                             BOOL bSelected, HBITMAP hbmCheck)
{
  CRect rcDest = rc;
  CBrush brush;
  COLORREF col=GetSysColor((bSelected||!IsNewShell())?COLOR_MENU:COLOR_3DLIGHT);//SK: Looks better on the old shell
  brush.CreateSolidBrush(col);
  dc->FillRect(rcDest,&brush);
  brush.DeleteObject();
  if (IsNewShell()) //SK: looks better on the old shell
    dc->DrawEdge(&rcDest, BDR_SUNKENOUTER, BF_RECT);
  if (!hbmCheck)DrawCheckMark(dc,rc.left+4,rc.top+4,GetSysColor(COLOR_MENUTEXT));
  else DrawRadioDot(dc,rc.left+5,rc.top+4,GetSysColor(COLOR_MENUTEXT));
  return TRUE;
}

BOOL CMenuEx::Draw3DCheckmark2(CDC *dc, const CRect& rc,
                             BOOL bSelected, CBrush* pBrush, HBITMAP hbmCheck)
{
  CRect rcDest = rc;
  if (!pBrush)
  {
	CBrush brush;
	COLORREF col=GetSysColor((bSelected||!IsNewShell())?COLOR_MENU:COLOR_3DLIGHT);//SK: Looks better on the old shell
	brush.CreateSolidBrush(col);
	dc->FillRect(rcDest,&brush);
	brush.DeleteObject();
  }
  else
  {
	dc->FillRect(rcDest,pBrush);
  }
  if (IsNewShell()) //SK: looks better on the old shell
    dc->DrawEdge(&rcDest, BDR_SUNKENOUTER, BF_RECT);
  if (!hbmCheck)DrawCheckMark(dc,rc.left+4,rc.top+4,GetSysColor(COLOR_MENUTEXT));
  else DrawRadioDot(dc,rc.left+5,rc.top+4,GetSysColor(COLOR_MENUTEXT));
  return TRUE;
}

void CMenuEx::DitherBlt2(CDC *drawdc, int nXDest, int nYDest, int nWidth, 
                        int nHeight, CBitmap &bmp, int nXSrc, int nYSrc)
{
	// create a monochrome memory DC
	CDC ddc;
	ddc.CreateCompatibleDC(0);
  CBitmap bwbmp;
	bwbmp.CreateCompatibleBitmap(&ddc, nWidth, nHeight);
	CBitmap * pddcOldBmp = ddc.SelectObject(&bwbmp);

  CDC dc;
	dc.CreateCompatibleDC(0);
  CBitmap * pdcOldBmp = dc.SelectObject(&bmp);
	
	// build a mask
	ddc.PatBlt(0, 0, nWidth, nHeight, WHITENESS);
	dc.SetBkColor(GetSysColor(COLOR_BTNFACE));
	ddc.BitBlt(0, 0, nWidth, nHeight, &dc, nXSrc,nYSrc, SRCCOPY);
	dc.SetBkColor(GetSysColor(COLOR_BTNHILIGHT));
	ddc.BitBlt(0, 0, nWidth, nHeight, &dc, nXSrc,nYSrc, SRCPAINT);

	// Copy the image from the toolbar into the memory DC
	// and draw it (grayed) back into the toolbar.
	dc.FillSolidRect(0,0, nWidth, nHeight, GetSysColor((IsNewShell())?COLOR_3DFACE:COLOR_MENU));
        //SK: Looks better on the old shell
	dc.SetBkColor(RGB(0, 0, 0));
	dc.SetTextColor(RGB(255, 255, 255));
	CBrush brShadow, brHilight;
	brHilight.CreateSolidBrush(GetSysColor(COLOR_BTNHILIGHT));
	brShadow.CreateSolidBrush(GetSysColor(COLOR_BTNSHADOW));
	CBrush * pOldBrush = dc.SelectObject(&brHilight);
	dc.BitBlt(0,0, nWidth, nHeight, &ddc, 0, 0, 0x00E20746L);
	drawdc->BitBlt(nXDest+1,nYDest+1,nWidth, nHeight, &dc,0,0,SRCCOPY);
	dc.BitBlt(1,1, nWidth, nHeight, &ddc, 0, 0, 0x00E20746L);
	dc.SelectObject(&brShadow);
	dc.BitBlt(0,0, nWidth, nHeight, &ddc, 0, 0, 0x00E20746L);
	drawdc->BitBlt(nXDest,nYDest,nWidth, nHeight, &dc,0,0,SRCCOPY);
	// reset DCs
	ddc.SelectObject(pddcOldBmp);
	ddc.DeleteDC();
	dc.SelectObject(pOldBrush);
	dc.SelectObject(pdcOldBmp);
	dc.DeleteDC();

	bwbmp.DeleteObject();
}

void CMenuEx::SetDisableOldStyle(void)
{
  disable_old_style=TRUE;
}

void CMenuEx::UnSetDisableOldStyle(void)
{
  disable_old_style=FALSE;
}

BOOL CMenuEx::GetDisableOldStyle(void)
{
  return(disable_old_style);
}


HBITMAP CMenuEx::LoadSysColorBitmap(int nResourceId)
{
  HINSTANCE hInst = 
    AfxFindResourceHandle(MAKEINTRESOURCE(nResourceId),RT_BITMAP);
  HRSRC hRsrc = 
    ::FindResource(hInst,MAKEINTRESOURCE(nResourceId),RT_BITMAP);
	if (hRsrc == NULL)
		return NULL;
	return AfxLoadSysColorBitmap(hInst, hRsrc, FALSE);
}


//*************************************************************************

BOOL CMenuEx::PreLoadMenu(LPCTSTR lpszResourceName)
{
  TRACE(_T(
    "IMPORTANT:Use CMenuEx::DestroyMenu to destroy Loaded Menu's\n"));
  ASSERT_VALID(this);
  ASSERT(lpszResourceName != NULL);

  // Find the Menu Resource:
  HINSTANCE m_hInst = AfxFindResourceHandle(lpszResourceName,RT_MENU);
  HRSRC hRsrc = ::FindResource(m_hInst,lpszResourceName,RT_MENU);
  if(hRsrc == NULL)return FALSE;

  // Get size of resource:

  DWORD dwSize = SizeofResource(NULL, hRsrc);

  // Load the Menu Resource:

  hGlobal = LoadResource(m_hInst, hRsrc);
  if(hGlobal == NULL)return FALSE;

  // Attempt to create us as a menu...

  if(!CMenu::CreateMenu())return FALSE;
  return TRUE;
}

BOOL CMenuEx::PostLoadMenu()
{
  ASSERT(hGlobal!=NULL);
  // Get Item template Header, and calculate offset of MENUITEMTEMPLATES

  MENUITEMTEMPLATEHEADER *pTpHdr=
    (MENUITEMTEMPLATEHEADER*)LockResource(hGlobal);
  BYTE* pTp=(BYTE*)pTpHdr + 
    (sizeof(MENUITEMTEMPLATEHEADER) + pTpHdr->offset);

  // Variables needed during processing of Menu Item Templates:

  int j=0;
  CMenuExData*  pData = NULL;              // New OD Menu Item Data
  WORD    dwFlags = 0;              // Flags of the Menu Item
  WORD    dwID  = 0;              // ID of the Menu Item
  UINT    uFlags;                  // Actual Flags.
  wchar_t *szCaption=NULL;
  int      nLen   = 0;                // Length of caption
  CTypedPtrArray<CPtrArray, CMenuEx*>  m_Stack;    // Popup menu stack
  CArray<BOOL,BOOL>  m_StackEnd;    // Popup menu stack
  m_Stack.Add(this);                  // Add it to this...
  m_StackEnd.Add(FALSE);

  do
  {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www国产成人免费观看视频 深夜成人网| 亚洲成人激情社区| 首页亚洲欧美制服丝腿| 国产福利一区在线| 亚洲一区二区三区中文字幕| 精品国产乱码久久| 欧美日韩国产小视频在线观看| 国产成人h网站| 日本va欧美va欧美va精品| 亚洲精品美国一| 国产精品午夜电影| 精品少妇一区二区三区免费观看 | 国产精品欧美久久久久无广告| 欧美精品在线一区二区| 色综合久久精品| 成人午夜碰碰视频| 国产真实乱子伦精品视频| 日韩精品视频网| 一区二区三区在线视频观看| 国产精品午夜免费| 中文字幕的久久| 久久久久国产精品厨房| 日韩欧美一卡二卡| 欧美另类高清zo欧美| 欧美又粗又大又爽| 一本一道综合狠狠老| 暴力调教一区二区三区| 国产99久久久国产精品潘金网站| 激情国产一区二区| 久久精品国产99国产精品| 蜜桃av一区二区在线观看| 日日夜夜一区二区| 日韩成人午夜电影| 日本不卡一区二区三区高清视频| 亚洲国产中文字幕在线视频综合| 亚洲精品欧美专区| 亚洲精品中文字幕在线观看| 国产精品国产自产拍在线| 日本一区二区成人在线| 中文字幕在线播放不卡一区| ...xxx性欧美| 亚洲欧美激情小说另类| 亚洲精品v日韩精品| 一区二区高清在线| 亚洲二区在线视频| 日韩成人午夜精品| 国产一区不卡在线| 成人免费视频国产在线观看| 成人app在线观看| 99久久精品国产毛片| 色婷婷综合久色| 欧美日韩日日夜夜| 日韩精品一区二区三区四区视频| 亚洲精品一区二区在线观看| 国产农村妇女毛片精品久久麻豆 | 国产精品日韩成人| 136国产福利精品导航| 亚洲精品日产精品乱码不卡| 一区二区三区国产精品| 午夜日韩在线观看| 精品一区二区三区影院在线午夜| 国产一区二区三区四区五区美女| 国产精品系列在线观看| 91捆绑美女网站| 欧美精品xxxxbbbb| xfplay精品久久| 亚洲色图制服诱惑| 青青草91视频| 9色porny自拍视频一区二区| 欧美日韩精品一区二区三区四区| 欧美成人精品福利| 中文字幕一区二区三区av| 午夜影院在线观看欧美| 国产精品一级片在线观看| 91麻豆文化传媒在线观看| 欧美另类videos死尸| 国产午夜精品美女毛片视频| 一区二区三区免费看视频| 久久国产免费看| 99re6这里只有精品视频在线观看| 欧美视频一区二区三区四区 | 91麻豆精品国产91久久久资源速度 | 亚洲精品在线三区| 一区二区日韩电影| 国产尤物一区二区在线| 日本精品一区二区三区四区的功能| 4438x亚洲最大成人网| 亚洲国产精品黑人久久久 | 国产东北露脸精品视频| 欧美视频一区二| 欧美激情在线一区二区| 三级欧美韩日大片在线看| 国产91丝袜在线观看| 欧美一二三四区在线| 亚洲手机成人高清视频| 精品在线一区二区| 在线免费亚洲电影| 国产免费成人在线视频| 久久精品久久久精品美女| 欧洲精品视频在线观看| 国产婷婷色一区二区三区四区| 视频一区欧美精品| 91免费观看视频在线| 久久精品视频在线免费观看| 日韩精品亚洲专区| 色综合av在线| 中文字幕免费在线观看视频一区| 日本视频中文字幕一区二区三区| 91福利精品视频| 亚洲三级视频在线观看| 国产激情一区二区三区桃花岛亚洲| 欧美一级艳片视频免费观看| 一区二区三区四区不卡视频| 成人动漫精品一区二区| 国产午夜精品一区二区三区视频 | 亚洲福利一二三区| 99久久久精品| 国产嫩草影院久久久久| 国产精品77777| 精品成人一区二区三区四区| 日韩有码一区二区三区| 91看片淫黄大片一级在线观看| 亚洲国产精华液网站w| 国产成人精品综合在线观看| 精品久久久久久亚洲综合网| 美女视频一区在线观看| 91精品国产欧美一区二区18| 亚洲国产一区二区三区青草影视 | 国产日韩欧美一区二区三区乱码| 日韩福利电影在线| 欧美精品一级二级| 日韩av不卡一区二区| 欧美精品tushy高清| 亚洲成人av资源| 欧美日韩亚洲综合在线| 亚洲成国产人片在线观看| 欧美无砖专区一中文字| 午夜精品成人在线视频| 欧美日韩一区在线| 视频一区视频二区中文字幕| 欧美二区三区的天堂| 日韩国产欧美视频| 精品欧美乱码久久久久久1区2区| 久久aⅴ国产欧美74aaa| 欧美大片免费久久精品三p| 精彩视频一区二区| 久久看人人爽人人| 成人精品国产免费网站| 成人欧美一区二区三区1314| 91视频国产资源| 亚洲午夜在线视频| 欧美videossexotv100| 国产一区二区三区蝌蚪| 国产日韩欧美激情| 99久久国产综合精品麻豆 | 国产精品羞羞答答xxdd| 中文字幕精品—区二区四季| 91在线视频免费观看| 亚洲午夜精品网| 欧美videos中文字幕| 国产v日产∨综合v精品视频| 亚洲欧美一区二区三区久本道91| 欧美三级乱人伦电影| 精品一区二区在线免费观看| 国产精品毛片大码女人| 欧美伊人久久大香线蕉综合69 | 秋霞电影网一区二区| 精品国产乱码久久久久久夜甘婷婷 | 亚洲精品成人天堂一二三| 欧美系列在线观看| 美女久久久精品| 国产精品素人一区二区| 91麻豆.com| 美国一区二区三区在线播放| 国产欧美一区二区精品性色超碰| 91年精品国产| 久久精品国产在热久久| 自拍偷自拍亚洲精品播放| 欧美一级视频精品观看| 99久久亚洲一区二区三区青草| 一区二区三区在线高清| 欧美刺激脚交jootjob| 91在线观看污| 狠狠色综合色综合网络| 亚洲黄色性网站| 久久久久99精品国产片| 欧美视频一区二区三区在线观看| 国产精品中文字幕日韩精品| 亚洲小说欧美激情另类| 国产日韩欧美a| 51久久夜色精品国产麻豆| 99re这里只有精品首页| 精品一区二区三区免费观看| 一区二区三区欧美久久| 国产三级欧美三级日产三级99| 国产精品的网站| 欧美大胆人体bbbb| 日本高清不卡aⅴ免费网站| 国产美女在线观看一区| 日精品一区二区三区|