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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? menuex.cpp

?? VC開發實用實例
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
    // Obtain Flags and (if necessary), the ID...
    memcpy(&dwFlags, pTp, sizeof(WORD));pTp+=sizeof(WORD);// Obtain Flags
    if(!(dwFlags & MF_POPUP)) //This menu isn't a POPUP (it hasn't any child)
	{
      memcpy(&dwID, pTp, sizeof(WORD)); // Obtain ID
      pTp+=sizeof(WORD);
    }
    else dwID = 0;

    uFlags = (UINT)dwFlags; // Remove MF_END from the flags that will
    if(uFlags & MF_END) // be passed to the Append(OD)Menu functions.
      uFlags -= MF_END;

    // Obtain Caption (and length)
    nLen = 0;
    char *ch = (char*)pTp;
    szCaption=new wchar_t[wcslen((wchar_t *)pTp)+1];
    wcscpy(szCaption,(wchar_t *)pTp);
    pTp=&pTp[(wcslen((wchar_t *)pTp)+1)*sizeof(wchar_t)];//modified SK
    
    // Handle popup menus first....

    //WideCharToMultiByte
    if(dwFlags & MF_POPUP)
	{
      if(dwFlags & MF_END)
		  m_StackEnd.SetAt(m_Stack.GetUpperBound(),TRUE); 
      CMenuEx* pSubMenu = new CMenuEx(m_bDrawGrayed,m_bShowLastArrow);
      pSubMenu->m_unselectcheck=m_unselectcheck;
      pSubMenu->m_selectcheck=m_selectcheck;
      pSubMenu->checkmaps=checkmaps;
      pSubMenu->checkmapsshare=TRUE;
      pSubMenu->CMenu::CreatePopupMenu();
      // Append it to the top of the stack:

      m_Stack[m_Stack.GetUpperBound()]->AppendODMenuW(szCaption,uFlags,
        (UINT)pSubMenu->m_hMenu, -1);
      m_Stack.Add(pSubMenu);
      m_StackEnd.Add(FALSE);
      m_SubMenus.Add(pSubMenu);
    }
    else 
	{
      m_Stack[m_Stack.GetUpperBound()]->AppendODMenuW(szCaption, uFlags, dwID, -1);
      if(dwFlags & MF_END) m_StackEnd.SetAt(m_Stack.GetUpperBound(),TRUE);
      j = m_Stack.GetUpperBound();
      while(j>=0 && m_StackEnd.GetAt(j))
	  {
        m_Stack[m_Stack.GetUpperBound()]->InsertSpaces();
        m_Stack.RemoveAt(j);
        m_StackEnd.RemoveAt(j);
        --j;
      }
    }
    delete[] szCaption;
  } while(m_Stack.GetUpperBound() != -1);

  for(int i=0;i<(int)CMenu::GetMenuItemCount();++i)
  {
    CString str=m_MenuList[i]->GetString();

    if(CMenu::GetSubMenu(i))
	{
      m_MenuList[i]->nFlags=MF_POPUP|MF_BYPOSITION;
      ModifyMenu(i,MF_POPUP|MF_BYPOSITION,(UINT)CMenu::GetSubMenu(i)->m_hMenu,str);
    }
    else
	{
      m_MenuList[i]->nFlags=MF_STRING|MF_BYPOSITION;
      ModifyMenu(i,MF_STRING|MF_BYPOSITION,m_MenuList[i]->nID,str);
    }
  }
  AppendLastArrow();
  PostBuiltMenu(this);
 
  return(TRUE);
}

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

BOOL CMenuEx::DeleteMenu(UINT nPosition, UINT nFlags)
{
	int n=m_MenuList.GetSize();
	UINT pos=nPosition;
	int i;
	if(nFlags==MF_BYCOMMAND)
	{
		for(i=0;i<n;i++)
			if (GetMenuItemID(i)==(signed)nPosition) {pos=i;break;}
		if(i==n || GetMenuItemID(i)!=(signed)nPosition) return FALSE;
	}
	CMenuExData* pData=m_MenuList.ElementAt(pos);
	delete pData;
	for(i=pos;i<n-1;i++)
		m_MenuList.SetAt(i,m_MenuList.ElementAt(i+1));
	m_MenuList.SetAt(n-1,NULL);
	m_MenuList.SetSize(n-1);
	int j=-1;
	int nSub=-1;
	n=m_SubMenus.GetSize();
	for(i=0;i<n;i++)
	{
		if (m_SubMenus.ElementAt(i)==CMenu::GetSubMenu(pos))
		 {j=i;break;}
	}
	if(j>=0)
	{
		CMenuEx* pMenu=m_SubMenus.ElementAt(j);
		delete pMenu;
		for(i=j;i<n-1;i++)
			m_SubMenus.SetAt(i,m_SubMenus.ElementAt(i+1));
		m_SubMenus.SetAt(n-1,NULL);
		m_SubMenus.SetSize(n-1);
	}
	BOOL b=CMenu::DeleteMenu(nPosition, nFlags);
	return b;
}

CMenuEx* CMenuEx::GetSubMenu(UINT iPos)
{
	CMenuEx* pMenu=(CMenuEx*) CMenu::GetSubMenu(iPos);
	if(pMenu!=NULL) ASSERT(pMenu->IsKindOf(RUNTIME_CLASS(CMenuEx)));
	return pMenu;
}

BOOL CMenuEx::AppendMenu(UINT nFlags, UINT nIDNewItem, LPCTSTR lpszNewItem, UINT nFlagsEx)
{
	nFlags|=MF_OWNERDRAW;
	BOOL bReturn;
	DeleteMenu(m_MenuList.GetSize()-1,MF_BYPOSITION);
	bReturn=AppendODMenu(lpszNewItem,nFlags,nIDNewItem,-1,nFlagsEx);
	AppendLastArrow();
	return bReturn;
}


int CMenuEx::GetFlagsEx(UINT nPos)
{
  CMenuExData* pData=m_MenuList.ElementAt(nPos);
  if (pData)
  {
	return pData->nFlagsEx;
  }
  return 0;
}

int CMenuEx::GetFlags(UINT nPos)
{
  CMenuExData* pData=m_MenuList.ElementAt(nPos);
  if (pData)
  {
	return pData->nFlags;
  }
  return 0;
}

int CMenuEx::GetMenuItemID(UINT nPos)
{
  CMenuExData* pData=m_MenuList.ElementAt(nPos);
  if (pData)
  {
	return pData->nID;
  }
  return 0;
}

BOOL CMenuEx::ModifyODSeparator(UINT nPos, int nFlagsEx)
{
	if (nPos<0) return FALSE;
	CMenuExData* pData=m_MenuList.ElementAt(nPos);
	pData->nFlagsEx=nFlagsEx;
	return TRUE;
}

BOOL CMenuEx::CheckIfGrayed(CMenuEx *pMenu)
{
  int i,n;
  BOOL bGrayed;
  if(!pMenu) return TRUE;
  n=pMenu->m_MenuList.GetSize();
  for (i=0;i<n;i++)
  {
	CMenuExData* pData=pMenu->m_MenuList.ElementAt(i);
	if (pData->nFlags&MF_POPUP)
		bGrayed=CheckIfGrayed(pMenu->GetSubMenu(i));
	else 
		bGrayed=pData->nFlagsEx&MF_DRAWGRAYED;
	if(!bGrayed) return FALSE;
  }
  return TRUE;
}

int CMenuEx::FindMenuPos(CMenuExData *pData,CMenuEx* &pFather)
{
  int p;
  CMenuEx* pTmp;
  for(int i=0;i<=pFather->m_MenuList.GetUpperBound();++i)
  {
    if(pFather->m_MenuList[i]==pData) return i;
	if(pFather->m_MenuList[i]->nFlags&MF_POPUP)
	{
		pTmp=pFather->GetSubMenu(i);
		p=FindMenuPos(pData,pTmp);
		if(p>=0) 
		{
			pFather=pTmp;
			return p;
		}
	}
  }
  return -1;
}

void CMenuEx::PostBuiltMenu(CMenuEx *pMenu)
{
  CMenuEx* pSubMenu;
  for(int i=0;i<(int)pMenu->GetMenuItemCount();++i)
  {
	pSubMenu=pMenu->GetSubMenu(i);
    if(pSubMenu)
	{
	  pSubMenu->m_bShowLastArrow=m_bShowLastArrow;
	  pSubMenu->AppendLastArrow();
	  PostBuiltMenu(pSubMenu);
    }
  }
}

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

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

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

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

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

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

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

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

BOOL CMenuEx::CreateMenu()
{
  BOOL m_bReturn=CMenu::CreateMenu();
  return m_bReturn;
}

BOOL CMenuEx::CreatePopupMenu()
{
  BOOL bReturn=CMenu::CreatePopupMenu();
  AppendLastArrow();
  return bReturn;
}

BOOL CMenuEx::ModifyFlagsEx(int nID, int nFlagsEx, BOOL byPos)
{
  int nLoc;
  CMenuExData *mdata;

  CMenuEx *psubmenu;
  if (byPos)
  {
	  nLoc=nID;
	  psubmenu=this;
  }
  else
  {
	  // Find the old CMenuExData structure:
	  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);
  mdata->nFlags = MF_BYCOMMAND | MF_OWNERDRAW;
  mdata->nID = nID;
  if(nFlagsEx>=0) mdata->nFlagsEx=nFlagsEx;
  return (CMenu::ModifyMenu(nID,mdata->nFlags,nID,(LPCTSTR)mdata));
}

LRESULT CMenuEx::TrapWindowProc(UINT nMsg, WPARAM wParam, LPARAM lParam)
{
	return TRUE;
}

void CMenuEx::EnableGrayedDraw(BOOL bEnable, BOOL bForce)
{
	if (!m_bEnableArrows) return;
	if (!bForce)
		if(m_bDrawGrayed==bEnable) return;
	m_bDrawGrayed=bEnable;
	if(m_bDrawGrayed)
	{
		RemoveLastArrows(this);
	}
	else
	{
		InsertLastArrows(this);
	}
}

void CMenuEx::RemoveLastArrows(CMenuEx *pMenu)
{
	CMenuExData* pData;
	m_bShowLastArrow=FALSE;
	if(!pMenu) return;
	pMenu->m_bDrawGrayed=m_bDrawGrayed;
	pMenu->m_bDrawOnlyGray=m_bDrawOnlyGray;
	int i,m,n;
	n=((CMenu*)pMenu)->GetMenuItemCount();
	m=n-1;
	UINT fex=pMenu->GetFlagsEx(m);
	if (fex&MF_LASTARROW)
	{
		pMenu->DeleteMenu(m, MF_BYPOSITION);
		pMenu->AppendLastArrow();
	}
	else
	{
		pMenu->SetFlagsEx(m, MF_LASTARROW|MF_DRAWGRAYED|0xFFFF);
	}
	for(i=0;i<n;i++)
	{
		pData=pMenu->m_MenuList[i];
		CMenu* ptMenu=((CMenu*)pMenu)->CMenu::GetSubMenu(i);
		if (!ptMenu)
		{
			::DeleteMenu(pMenu->m_hMenu,i, MF_BYPOSITION);
			::InsertMenu(pMenu->m_hMenu,i, MF_BYPOSITION|pData->nFlags|MF_OWNERDRAW,pData->nID,(LPCTSTR) pData);
		}
		else
		{
			RemoveLastArrows((CMenuEx*)ptMenu);
			HMENU hMenu=ptMenu->m_hMenu;
			::RemoveMenu(pMenu->m_hMenu,i, MF_BYPOSITION);
			::InsertMenu(pMenu->m_hMenu,i, MF_BYPOSITION|MF_POPUP|MF_OWNERDRAW,(UINT)hMenu,(LPCTSTR) pData);
		}
	}
}

void CMenuEx::InsertLastArrows(CMenuEx *pMenu)
{
	CMenuExData* pData;
	m_bShowLastArrow=TRUE;
	if(!pMenu) return;
	int i;
	UINT pos=((CMenu*)pMenu)->GetMenuItemCount();
	pMenu->m_bDrawGrayed=m_bDrawGrayed;
	pMenu->m_bDrawOnlyGray=m_bDrawOnlyGray;
	UINT fex=pMenu->GetFlagsEx(pos-1);
	if (fex&MF_LASTARROW)
	{
		pMenu->DeleteMenu(pos-1, MF_BYPOSITION);
		pMenu->AppendLastArrow();
	}
	else
	{
		pMenu->AppendLastArrow();
	}
	for(i=(signed)pos-1;i>=0;i--)
	{
		pData=pMenu->m_MenuList[i];
		CMenu* ptMenu=((CMenu*)pMenu)->CMenu::GetSubMenu(i);
		if (!ptMenu)
		{
			::DeleteMenu(pMenu->m_hMenu,i, MF_BYPOSITION);
			::InsertMenu(pMenu->m_hMenu,i, MF_BYPOSITION|pData->nFlags|MF_OWNERDRAW,pData->nID,(LPCTSTR) pData);
		}
		else
		{
			InsertLastArrows(pMenu->GetSubMenu(i));
			HMENU hMenu=ptMenu->m_hMenu;
			::RemoveMenu(pMenu->m_hMenu,i, MF_BYPOSITION);
			::InsertMenu(pMenu->m_hMenu,i, MF_BYPOSITION|MF_POPUP|MF_OWNERDRAW,(UINT)hMenu,(LPCTSTR) pData);
		}
	}
}

int CMenuEx::FindMenuPos(CMenuEx *pMenu, CMenuEx *&pFather)
{
  int p,n;
  CMenuEx* pTmp;
  n=((CMenu*)pFather)->GetMenuItemCount();
  for(int i=0;i<n;++i)
  {
    if(pFather->GetSubMenu(i)==pMenu) 
	{
		return i;
	}
	if(pFather->m_MenuList[i]->nFlags&MF_POPUP)
	{
		pTmp=pFather->GetSubMenu(i);
		p=FindMenuPos(pMenu,pTmp);
		if(p>=0) 
		{
			pFather=pTmp;
			return p;
		}
	}
  }
  return -1;
}

int CMenuEx::SetFlagsEx(UINT nPos,int nFlagsEx)
{
  int r;
  CMenuExData* pData=m_MenuList.ElementAt(nPos);
  if (pData)
  {
	r=pData->nFlagsEx;
	pData->nFlagsEx=nFlagsEx;
  }
  return r;
}

#ifndef ID_SHOWFULL
#define ID_SHOWFULL -1
#endif

BOOL CMenuEx::AppendLastArrow()
{
	return AppendODMenu(_T("----V----"),MF_STRING|MF_OWNERDRAW,ID_SHOWFULL,-1,MF_LASTARROW);
}

void CMenuEx::UpdateGrayedOnly(CMenuEx *pMenu, BOOL b)
{
	pMenu->m_bDrawOnlyGray=b;
	int i,n;
	n=pMenu->GetMenuItemCount();
	for(i=0;i<n;i++)
	{
		CMenuEx* ptMenu=pMenu->GetSubMenu(i);
		if (ptMenu)
		{
			UpdateGrayedOnly(ptMenu,b);
		}
	}
}

void*& CMenuEx::GetExtraDataPtr(UINT nPos)
{
  CMenuExData* pData=m_MenuList.ElementAt(nPos);
  ASSERT (pData!=NULL);
  return pData->m_pExtraData;
}

BOOL CMenuEx::InsertMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem, LPCTSTR lpszNewItem, UINT nFlagsEx)
{
	nFlags|=MF_OWNERDRAW;
	BOOL bReturn;
	DeleteMenu(m_MenuList.GetSize()-1,MF_BYPOSITION);
	// Add the MF_OWNERDRAW flag if not specified:
	if (!lpszNewItem)lpszNewItem=_T("");
	if(!nIDNewItem)nFlags=MF_SEPARATOR|MF_OWNERDRAW;
  
	CMenuExData *mtdata,*mdata2, *mdata = new CMenuExData;
#ifndef UNICODE
	mdata->SetAnsiString(lpszNewItem);    //SK: modified for dynamic allocation
#else
	mdata->SetWideString(lpszNewItem);    //SK: modified for dynamic allocation
#endif
	mdata->menuIconNormal = -1;
	mdata->xoffset=-1;
	mdata->nFlags = nFlags;
	mdata->nFlagsEx=nFlagsEx;
	mdata->nID = nIDNewItem;
	mdata2=mdata;
	m_MenuList.Add(mdata);
	UINT n=m_MenuList.GetSize();
	n--;
	mtdata=m_MenuList[n];
	for (UINT i=nPosition;i<n;i++)
	{
		mdata=m_MenuList[i];
		m_MenuList[i]=mtdata;
		mtdata=mdata;
	}
	m_MenuList[n]=mtdata;
    bReturn=CMenu::InsertMenu(nPosition, nFlags, nIDNewItem, (LPCTSTR)mdata2);
	AppendLastArrow();
	return bReturn;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品每日更新| 日本va欧美va欧美va精品| 欧美日韩一级视频| 成人的网站免费观看| 国产资源精品在线观看| 久草这里只有精品视频| 国产主播一区二区三区| 日本韩国精品在线| 欧美日韩国产综合一区二区| 欧美日韩三级一区| 日韩理论片网站| 欧美激情自拍偷拍| 亚洲男帅同性gay1069| 中文字幕亚洲欧美在线不卡| 亚洲色图欧美偷拍| 国产成人精品影视| 一本色道久久综合精品竹菊| 91成人免费网站| 国产精品美女久久久久久| 六月丁香婷婷色狠狠久久| 精品一区二区三区视频| 欧美少妇一区二区| 精品国产乱码久久久久久久| 久久久噜噜噜久噜久久综合| 久久久精品tv| 国产露脸91国语对白| www.欧美日韩| 制服丝袜国产精品| 欧美国产日产图区| 风间由美一区二区三区在线观看| 日本大香伊一区二区三区| 国产精品久久久久影视| 午夜精品一区二区三区电影天堂| 久久9热精品视频| 欧美一二三在线| 亚洲视频免费在线| 成人av网站在线| 中文字幕一区av| 99精品视频一区二区三区| 欧美一区二区高清| 亚洲激情校园春色| 国产一区二区三区久久久| 色香蕉成人二区免费| 亚洲人精品午夜| 日本高清不卡一区| 亚洲激情图片一区| 欧美群妇大交群中文字幕| 图片区日韩欧美亚洲| 777a∨成人精品桃花网| 麻豆91小视频| 在线观看日韩高清av| 久久久噜噜噜久久人人看 | 欧美一卡二卡在线| 日本不卡高清视频| 精品国产91洋老外米糕| 成人永久免费视频| 精品国产乱码久久久久久牛牛| 九九**精品视频免费播放| 国产校园另类小说区| 免费成人在线播放| 国产亚洲一区二区三区四区| av一区二区三区在线| 亚洲二区在线视频| 91视频免费看| 中文字幕亚洲欧美在线不卡| 欧美亚州韩日在线看免费版国语版| 午夜精品久久久久久久久久久 | 婷婷六月综合网| 精品久久久久久久久久久久久久久| 亚洲一区二区三区视频在线播放| 99久久免费视频.com| 亚洲444eee在线观看| 欧美写真视频网站| 国产一区二区三区精品欧美日韩一区二区三区 | 夜色激情一区二区| 91欧美激情一区二区三区成人| 午夜久久久久久久久久一区二区| 26uuu亚洲综合色| 国产精品资源站在线| 亚洲精品免费在线播放| 精品噜噜噜噜久久久久久久久试看 | 亚洲一区二区黄色| 亚洲国产高清不卡| 91精品国产一区二区三区蜜臀| 成人小视频在线观看| 日本不卡视频在线| 一区二区高清在线| 国产精品成人免费精品自在线观看| 欧美一二三四区在线| 欧美制服丝袜第一页| 成人精品视频一区| 久久不见久久见免费视频1| 亚洲在线视频免费观看| 国产精品理论片在线观看| 日韩欧美一级在线播放| 国产综合色产在线精品| 亚洲午夜一区二区| 亚洲欧美一区二区久久| 中文字幕精品—区二区四季| 日韩亚洲欧美中文三级| 欧美性大战xxxxx久久久| 99精品一区二区| 成人一级片在线观看| 国产伦精一区二区三区| 蜜臀av国产精品久久久久| 丝袜国产日韩另类美女| 国产欧美日韩激情| 色综合久久精品| av在线播放成人| 不卡在线视频中文字幕| 国产成人av电影在线| 国产精品一级黄| 国产精品一区二区在线观看不卡 | 狠狠v欧美v日韩v亚洲ⅴ| 五月综合激情网| 亚洲a一区二区| 亚洲成人av中文| 五月婷婷另类国产| 日韩国产高清影视| 国产精品福利一区二区| 国产精品高潮呻吟久久| 国产精品久久看| 亚洲精品国产成人久久av盗摄| 中文字幕乱码一区二区免费| 国产亚洲欧美日韩日本| 国产欧美一区二区精品久导航| 久久精品一级爱片| 中文字幕国产一区| 亚洲日本免费电影| 亚洲一区中文日韩| 三级在线观看一区二区| 日本中文字幕一区二区视频| 久久国产精品99精品国产 | 国模冰冰炮一区二区| 欧美亚洲国产怡红院影院| 91免费看`日韩一区二区| 99国产精品久久久久久久久久| 99久久国产综合精品色伊| 91在线小视频| 欧美日韩中文国产| 欧美va在线播放| 国产精品乱码一区二三区小蝌蚪| 亚洲丝袜制服诱惑| 午夜欧美大尺度福利影院在线看| 日韩成人一级大片| 国产sm精品调教视频网站| 91啪亚洲精品| 日韩一区二区三区观看| 国产欧美va欧美不卡在线| 日韩理论电影院| 蓝色福利精品导航| 97se亚洲国产综合在线| 欧美精品1区2区3区| jlzzjlzz亚洲女人18| 欧美日产国产精品| 久久久99久久精品欧美| 亚洲与欧洲av电影| 国产成人免费xxxxxxxx| 欧美午夜影院一区| 日韩精品最新网址| 亚洲免费在线电影| 极品少妇xxxx精品少妇偷拍| 99riav一区二区三区| 日韩欧美国产电影| **欧美大码日韩| 黄色资源网久久资源365| 色婷婷久久久久swag精品| 精品国产免费视频| 午夜精品在线看| 91麻豆精品秘密| 久久精品欧美日韩| 日韩av成人高清| 欧美性生活影院| 亚洲欧美在线观看| 国产乱人伦偷精品视频免下载| 欧美日韩高清不卡| 综合中文字幕亚洲| 国产成人免费视| www国产亚洲精品久久麻豆| 手机精品视频在线观看| 欧美亚州韩日在线看免费版国语版| 国产日韩欧美电影| 美女视频一区二区| 91麻豆精品国产91久久久| 亚洲免费观看高清完整| 成人午夜激情在线| 国产亚洲美州欧州综合国| 免费高清不卡av| 欧美一卡二卡三卡| 日韩不卡一二三区| 4hu四虎永久在线影院成人| 亚洲在线观看免费| 精品视频在线免费观看| 一区二区三区精品视频| 一本久久精品一区二区| 成人免费小视频| 一本色道综合亚洲| 亚洲一级片在线观看| 欧美性色黄大片手机版| 亚洲成av人片|