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

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

?? peepermenu.cpp

?? 這是個soket的代碼不是太實用但是對出學者還是有些幫助的 有需要的可以
?? CPP
字號:
///////////////////////////////////////////////////////////////////////////////
// 遠程控制軟件-偷窺者  菜單類                                               //
// 日期:2001/10/02                                                           //
// 作者:劉東發                                                               //
// Email:dongfa@yeah.net                                                     //
// http://dongfa.yeah.net                                                    //
// OICQ:5584173  阿東                                                        //
// 作者聲明:                                                                 //
//     此部分代碼全是作者所寫,可以隨便傳播,但要保持文件的完整性,有問題     //
// 或者意見請來信,謝謝!                                                      //
///////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "PeeperMenu.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

#define MEMU_SYSCOLOR		GetSysColor(COLOR_MENU)
#define TOP_COLOR			RGB(128, 128, 128)
#define BOTTOM_COLOR		RGB(255, 255, 255)

CPeeperMenu::CPeeperMenu()
{
	m_nMenuHeight = 24;
	m_nMenuWidth = 48;
	m_nSepHeight = 12;
	m_nSpace = 4;
	m_ilImageList.DeleteImageList();
	m_uIDArray.RemoveAll();
	m_uBackBmpID = 0;
	m_szMenuBk = CSize(0, 0);
	m_szMenuIcon = CSize(0, 0);
}

CPeeperMenu::~CPeeperMenu()
{
	ClearMemory();
}

void CPeeperMenu::ClearMemory()
{
	POSITION pos = m_obMenuList.GetHeadPosition();
	while(pos)
	{
		LPPEEPERMENU lpMenu = (LPPEEPERMENU)m_obMenuList.GetNext(pos);
		if(lpMenu)
		{
			delete lpMenu;
			lpMenu = NULL;
		}
	}
	m_obMenuList.RemoveAll();
	m_ilImageList.DeleteImageList();
	m_uIDArray.RemoveAll();
}

BOOL CPeeperMenu::ChangeStyle(HMENU hMenu, BOOL bTop)
{
	CMenu *pMenu = CMenu::FromHandle(hMenu);
	if(pMenu != NULL)
	{
		for(UINT i = 0; i < pMenu->GetMenuItemCount(); i ++)
		{
			LPPEEPERMENU lpMenu = new PEEPERMENU;
			lpMenu->nMenuID = pMenu->GetMenuItemID(i);
			if(lpMenu->nMenuID < 0 && bTop)
			{
				lpMenu->nMenuID = -2;
			}
			pMenu->GetMenuString(i, lpMenu->strText, MF_BYPOSITION);
			pMenu->ModifyMenu(i, MF_BYPOSITION | MF_OWNERDRAW,
				lpMenu->nMenuID, LPCTSTR(lpMenu));
			CMenu *pSubMenu = pMenu->GetSubMenu(i);
			if(pSubMenu && lpMenu->nMenuID != -2 && !bTop)
			{
				lpMenu->nMenuID = -1;
			}
			m_obMenuList.AddTail((CObject *)lpMenu);
			if(pSubMenu)
			{
				ChangeStyle(pSubMenu->GetSafeHmenu());
			}
		}
	}
	return TRUE;
}

BOOL CPeeperMenu::LoadMenu(UINT uMenuID, UINT uToolBarID, CSize sz)
{
	BOOL bRet = CMenu::LoadMenu(uMenuID);
	ChangeStyle(GetSafeHmenu(), TRUE);
	return bRet;
}

BOOL CPeeperMenu::AttachMenu(HMENU hMenu, UINT uToolBarID, CSize sz)
{
	ClearMemory();

	Attach(hMenu);
	ChangeStyle(GetSafeHmenu(), TRUE);

	m_szMenuIcon = sz;

	int nRet = GetImageFromToolBar(uToolBarID, sz, &m_ilImageList, &m_uIDArray);
	
	return TRUE;
}

BOOL CPeeperMenu::DetachMenu()
{
	ClearMemory();
	Detach();

	return TRUE;
}

void CPeeperMenu::AppendMenu(UINT uID, CString strText)
{
}

void CPeeperMenu::SetBkImage(UINT uID)
{
	m_uBackBmpID = uID;
	CBitmap bmp;
	bmp.LoadBitmap(m_uBackBmpID);
	if(bmp.GetSafeHandle() != NULL)
	{
		BITMAP bm;
		bmp.GetBitmap(&bm);
		m_szMenuBk.cx = bm.bmWidth;
		m_szMenuBk.cy = bm.bmHeight;
	}
	else
	{
		m_szMenuBk = CSize(0, 0);
	}
}

int CPeeperMenu::GetIndexByID(UINT uID)
{
	for(int i = 0; i < m_uIDArray.GetSize(); i ++)
	{
		if(uID == m_uIDArray[i])
		{
			ASSERT(i < m_ilImageList.GetImageCount());
			return i;
		}
	}
	return -1;
}

int CPeeperMenu::AddToolBar(UINT uToolBarID, CSize sz)
{
	CImageList ilImage;
	CUIntArray uIDArray;
	int nRet = GetImageFromToolBar(uToolBarID, sz, &ilImage, &uIDArray);
	if(nRet > 0)
	{
		for(int i = 0; i < ilImage.GetImageCount(); i ++)
		{
			HICON hIcon = ilImage.ExtractIcon(i);
			if(hIcon != NULL)
			{
				m_ilImageList.Add(hIcon);
				m_uIDArray.Add(uIDArray[i]);
			}
		}
	}
	return nRet;
}

int CPeeperMenu::GetImageFromToolBar(UINT uToolBarID, CSize sz, CImageList *pImageList, 
						 CUIntArray *uIDArray)
{
	if(uToolBarID <= 0 || pImageList == NULL || uIDArray == NULL)
		return -1;
	CToolBar wndToolBar;
	if(!wndToolBar.Create(AfxGetMainWnd()) || !wndToolBar.LoadToolBar(uToolBarID))
	{
		return -1;
	}
	int nCount = wndToolBar.GetCount();
	if(nCount <= 0)
	{
		return -1;
	}
	pImageList->Create(uToolBarID, sz.cx, sz.cy, MEMU_SYSCOLOR);
	int nImageCount = pImageList->GetImageCount();
	for(int i = 0; i < nCount; i ++)
	{
		UINT uID = wndToolBar.GetItemID(i);
		if(uID != ID_SEPARATOR)
		{
			uIDArray->Add(uID);
		}
	}
	int nSize = uIDArray->GetSize();
	ASSERT(nSize == nImageCount);

	return nSize;
}

int CPeeperMenu::DrawBmp(CDC *pDC, UINT uID, CRect rect, BOOL bStretch)
{
	HRSRC hSrc = FindResource(NULL, MAKEINTRESOURCE(uID), RT_BITMAP);
	if(hSrc)
	{
		CBitmap bmp;
		bmp.LoadBitmap(uID);
		if(bmp.GetSafeHandle() != NULL)
		{
			BITMAP bm;
			bmp.GetBitmap(&bm);
			CDC memDC;
			memDC.CreateCompatibleDC(pDC);
			CBitmap *pOldBmp = memDC.SelectObject(&bmp);
			if(bStretch)
			{
				pDC->SetStretchBltMode(COLORONCOLOR);
				pDC->StretchBlt(rect.left, rect.top, rect.Width(), rect.Height(),
					&memDC, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);
			}
			else
			{
				pDC->BitBlt(rect.left, rect.top, bm.bmWidth, bm.bmHeight,
					&memDC, 0, 0, SRCCOPY);
			}
			memDC.SelectObject(&pOldBmp);
			memDC.DeleteDC();
		}
	}
	return 0;
}

void CPeeperMenu::DrawGradRect(CDC *pDC, CRect rect, COLORREF cr1, 
							   COLORREF cr2, BOOL bHor)
{
	int r1 = GetRValue(cr1);
	int g1 = GetGValue(cr1);
	int b1 = GetBValue(cr1);

	int r2 = GetRValue(cr2);
	int g2 = GetGValue(cr2);
	int b2 = GetBValue(cr2);

	if(bHor)
	{
		float dr = ((float)(r2 - r1))/(float)(rect.Width());
		float dg = ((float)(g2 - g1))/(float)(rect.Width());
		float db = ((float)(b2 - b1))/(float)(rect.Width());
		
		for(int i = rect.left; i < rect.right; i ++)
		{
			int r = r1 + (int)(dr*((float)(i - rect.left)));
			int g = g1 + (int)(dg*((float)(i - rect.left)));
			int b = b1 + (int)(db*((float)(i - rect.left)));
			CPen pen(PS_SOLID, 1, RGB(r, g, b));
			CPen *old = pDC->SelectObject(&pen);
			pDC->MoveTo(i, rect.top);
			pDC->LineTo(i, rect.bottom);
			pDC->SelectObject(old);
		}
	}
	else
	{
		float dr = ((float)(r2 - r1))/(float)(rect.Height());
		float dg = ((float)(g2 - g1))/(float)(rect.Height());
		float db = ((float)(b2 - b1))/(float)(rect.Height());
		
		for(int i = rect.top; i < rect.bottom; i ++)
		{
			int r = r1 + (int)(dr*((float)(i - rect.top)));
			int g = g1 + (int)(dg*((float)(i - rect.top)));
			int b = b1 + (int)(db*((float)(i - rect.top)));
			CPen pen(PS_SOLID, 1, RGB(r, g, b));
			CPen *old = pDC->SelectObject(&pen);
			pDC->MoveTo(rect.left, i);
			pDC->LineTo(rect.right, i);
			pDC->SelectObject(old);
		}
	}
}

void CPeeperMenu::DrawItem(LPDRAWITEMSTRUCT lpDIS)
{
	LPPEEPERMENU lpMenu = (LPPEEPERMENU)(lpDIS->itemData);
	if(!AfxIsValidAddress(lpMenu, sizeof(PEEPERMENU)))
		return ;

	CDC *pDC = CDC::FromHandle(lpDIS->hDC);
	const CRect rect = lpDIS->rcItem;

	BOOL bIsSelected = FALSE;
	BOOL bIsChecked  = FALSE;
	BOOL bIsGrayed   = FALSE;
	BOOL bHasImage   = FALSE;

	//取得菜單狀態
	bIsSelected = (lpDIS->itemState & ODS_SELECTED);
	bIsChecked  = (lpDIS->itemState & ODS_CHECKED);
	bIsGrayed   = (lpDIS->itemState & ODS_GRAYED);

	CRect rc = rect;
	pDC->SetBkMode(TRANSPARENT);
	pDC->SelectStockObject(NULL_BRUSH);

	if(lpMenu->nMenuID == 0)// 分隔條
	{
		CRect rc = rect;
		rc.top = rect.Height()/2 + rect.top;
		rc.bottom = rc.top + 2;
		rc.left += (m_szMenuBk.cx + m_nSpace);
		pDC->Draw3dRect(rc, TOP_COLOR, BOTTOM_COLOR);
	}
	else // 顯示文字或者圖標
	{
		//先畫圖標
		int nIndex = GetIndexByID(lpMenu->nMenuID);
		if(nIndex >= 0) // 如果有圖片標
		{
			bHasImage = TRUE; //設置有圖像標志
			rc = rect;
			rc.left += (m_szMenuBk.cx + m_nSpace);
			int n = (rect.Height() - m_szMenuIcon.cy)/2;
			rc.top += (n + 1);
			m_ilImageList.Draw(pDC, nIndex, CPoint(rc.left, rc.top), ILD_TRANSPARENT);
			CRect rc1 = CRect(rc.left, rc.top, rc.left + m_szMenuIcon.cx, 
				rc.top + m_szMenuIcon.cy);
			rc = rc1;
			rc.InflateRect(m_nSpace/2, m_nSpace/2);
			if(bIsChecked) //如果有圖像并且是Check狀態
			{
				pDC->Draw3dRect(rc, TOP_COLOR, BOTTOM_COLOR);
			}
			else // 沒有Check但是有圖像
			{
				rc.InflateRect(1, 1);
				if(bIsSelected)
				{
					pDC->Draw3dRect(rc, BOTTOM_COLOR, TOP_COLOR);
				}
				else
				{
					pDC->Draw3dRect(rc, MEMU_SYSCOLOR, MEMU_SYSCOLOR);
				}
			}
		}
		else // 如果沒有使用缺省的
		{
			bHasImage = FALSE; //設置無圖像標志
			if(bIsChecked)
			{
				bHasImage = TRUE; //設置有圖像標志
				rc = rect;
				rc.left += (m_szMenuBk.cx + m_nSpace);
				int n = (rect.Height() - m_szMenuIcon.cy)/2;
				rc.top += (n + 1);
				CRect rc1 = CRect(rc.left, rc.top, rc.left + m_szMenuIcon.cx, 
					rc.top + m_szMenuIcon.cy);
				
				pDC->SetTextColor(RGB(0, 64, 255));
				pDC->DrawText(_T("√"), &rc1, DT_EXPANDTABS | DT_VCENTER |
					DT_SINGLELINE | DT_CENTER);
				rc = rc1;
				rc.left += 1;
				rc.top += 1;
				pDC->DrawText(_T("√"), &rc, DT_EXPANDTABS | DT_VCENTER |
					DT_SINGLELINE | DT_CENTER);

				rc1.InflateRect(m_nSpace/2, m_nSpace/2);
				pDC->Draw3dRect(rc1, TOP_COLOR, BOTTOM_COLOR);
			}
		}
		//顯示菜單文字
		if(bIsGrayed) // 是禁止菜單
		{
			rc = rect;
			rc.left += (m_szMenuBk.cx + m_szMenuIcon.cx + m_nSpace*2);
			rc.DeflateRect(0, m_nSpace/2, 0, m_nSpace/2 - 1);
			if(bIsSelected) // 如果是禁止菜單,并且是被選擇
			{
				CRect rc1 = rc;
				if(!bHasImage)
				{
					rc1.left -= (m_szMenuIcon.cx + m_nSpace);
				}
				DrawGradRect(pDC, rc1, RGB(64, 0, 255), RGB(192, 192, 192));
				if(lpMenu->strText.GetLength() > 0)
				{
					rc = rect;
					rc.left += (m_szMenuBk.cx + m_szMenuIcon.cx + m_nSpace*3);
					pDC->SetTextColor(TOP_COLOR);
					pDC->DrawText(lpMenu->strText, &rc, DT_EXPANDTABS | DT_VCENTER | DT_SINGLELINE);
				}
			}
			else // 如果是禁止菜單但沒有被選擇
			{
				CRect rc1 = rc;
				if(!bHasImage)
				{
					rc1.left -= (m_szMenuIcon.cx + m_nSpace);
				}
				pDC->FillSolidRect(rc1, MEMU_SYSCOLOR);

				if(lpMenu->strText.GetLength() > 0)
				{
					rc = rect;
					rc.left += (m_szMenuBk.cx + m_szMenuIcon.cx + m_nSpace*3);
					pDC->SetTextColor(BOTTOM_COLOR);
					pDC->DrawText(lpMenu->strText, &rc, DT_EXPANDTABS | DT_VCENTER | DT_SINGLELINE);
					pDC->SetTextColor(TOP_COLOR);
					rc.left -= 1;
					rc.top -= 1;
					pDC->DrawText(lpMenu->strText, &rc, DT_EXPANDTABS | DT_VCENTER | DT_SINGLELINE);
				}
			}
		}
		else // 不是禁止菜單
		{
			if(lpMenu->nMenuID == -2) // 頂層菜單
			{
				rc = rect;
				rc.left += m_nSpace*2;
				if(bIsSelected) // 是選擇狀態
				{
					pDC->Draw3dRect(rc, TOP_COLOR, BOTTOM_COLOR);
					pDC->SetTextColor(RGB(0, 0, 128));
				}
				else // 不是選擇狀態
				{
					pDC->Draw3dRect(rc, MEMU_SYSCOLOR, MEMU_SYSCOLOR);
					pDC->SetTextColor(RGB(64, 0, 128));
				}
				rc.left += m_nSpace;
				if(lpMenu->strText.GetLength() > 0)
				{
					pDC->DrawText(lpMenu->strText, &rc, DT_EXPANDTABS | 
						DT_VCENTER | DT_SINGLELINE);
				}
			}
			else // 不是頂層菜單,是彈出菜單或者一個菜單項目
			{
				rc = rect;
				rc.left += (m_szMenuBk.cx + m_szMenuIcon.cx + m_nSpace*2);
				rc.DeflateRect(0, m_nSpace/2, 0, m_nSpace/2 - 1);
				if(bIsSelected)
				{
					CRect rc1 = rc;
					if(!bHasImage)
					{
						rc1.left -= (m_szMenuIcon.cx + m_nSpace);
					}
					DrawGradRect(pDC, rc1, RGB(64, 0, 255), RGB(192, 192, 192));
					pDC->SetTextColor(BOTTOM_COLOR);
				}
				else
				{
					CRect rc1 = rc;
					if(!bHasImage)
					{
						rc1.left -= (m_szMenuIcon.cx + m_nSpace);
					}
					pDC->FillSolidRect(rc1, MEMU_SYSCOLOR);
					pDC->SetTextColor(RGB(64, 0, 128));
				}
				if(lpMenu->strText.GetLength() > 0)
				{
					rc = rect;
					rc.left += (m_szMenuBk.cx + m_szMenuIcon.cx + m_nSpace*3);
					pDC->DrawText(lpMenu->strText, &rc, DT_EXPANDTABS |
						DT_VCENTER | DT_SINGLELINE);
				}
			}
		}
	}
	if((lpDIS->itemAction & ODA_DRAWENTIRE) && lpMenu->nMenuID != -2)
	{
//		DrawBmp(pDC, m_uBackBmpID, CRect(1, 1, -1, -1), FALSE);
		DrawGradRect(pDC, CRect(0, 0, m_szMenuBk.cx, rect.bottom), 
			RGB(0, 0, 0), RGB(0, 0, 255), FALSE);
	}
}

void CPeeperMenu::MeasureItem(LPMEASUREITEMSTRUCT lpMIS)
{
	LPPEEPERMENU lpMenu = (LPPEEPERMENU)(lpMIS->itemData);
	if(lpMenu->nMenuID == 0)
	{
		lpMIS->itemHeight = m_nSepHeight;
		lpMIS->itemWidth = 100;
	}
	else
	{
		lpMIS->itemWidth = m_nMenuWidth; // default

		CString strText = lpMenu->strText;
		int nLen = strText.GetLength();
		if(nLen > 0)
		{
			CFont fontMenu;
			LOGFONT lf;
			ZeroMemory(&lf, sizeof(LOGFONT));
			NONCLIENTMETRICS nm;
			nm.cbSize = sizeof(NONCLIENTMETRICS);
			VERIFY(SystemParametersInfo(SPI_GETNONCLIENTMETRICS,
				nm.cbSize, &nm, 0)); 
			lf = nm.lfMenuFont;
			fontMenu.CreateFontIndirect(&lf);
			SIZE sz;			
			CDC *pDC = AfxGetMainWnd()->GetDC();
			CFont *old = pDC->SelectObject(&fontMenu);
			::GetTextExtentPoint32(pDC->GetSafeHdc(), strText, strText.GetLength(), &sz);
			if(lpMenu->nMenuID == -2)
			{
				lpMIS->itemWidth = sz.cx + m_nSpace;
			}
			else
			{
				lpMIS->itemWidth = sz.cx + m_szMenuBk.cx + m_szMenuIcon.cx + m_nSpace*4;
			}
			pDC->SelectObject(&old);
		    AfxGetMainWnd()->ReleaseDC(pDC);
			fontMenu.DeleteObject();
		}
		lpMIS->itemHeight = m_nMenuHeight;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品综合一区二区三区| 国产精品影视网| 久久久青草青青国产亚洲免观| 波多野结衣中文字幕一区| 亚洲444eee在线观看| 久久精品视频在线免费观看| 欧美日韩国产欧美日美国产精品| 国产在线视频精品一区| 亚洲高清免费视频| 国产精品理论片在线观看| 欧美一卡2卡3卡4卡| 91国偷自产一区二区三区成为亚洲经典 | 亚洲午夜激情av| 欧美大片顶级少妇| 欧美精选一区二区| 91啦中文在线观看| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 粉嫩久久99精品久久久久久夜| 亚洲一区二区三区三| 国产精品素人视频| 精品国产在天天线2019| 欧美熟乱第一页| 9久草视频在线视频精品| 韩国理伦片一区二区三区在线播放| 亚洲资源中文字幕| 亚洲免费资源在线播放| 国产精品入口麻豆原神| 久久久久9999亚洲精品| 欧美sm极限捆绑bd| 欧美r级在线观看| 日韩丝袜美女视频| 91精品国产综合久久小美女| 欧美性猛交xxxxxxxx| 色视频成人在线观看免| 色综合天天在线| 91丨porny丨蝌蚪视频| 99久久婷婷国产综合精品| 国产成人午夜片在线观看高清观看| 久久91精品国产91久久小草| 日韩国产欧美视频| a在线播放不卡| 成人av网址在线观看| 成人高清免费在线播放| 成人黄色片在线观看| 成人国产精品免费网站| 成人动漫一区二区| 成人h精品动漫一区二区三区| 国产91色综合久久免费分享| 国产成人在线色| 成人精品视频一区二区三区 | 欧美午夜一区二区| 日本韩国精品在线| 欧美日精品一区视频| 欧美日精品一区视频| 欧美一区二区高清| 日韩欧美区一区二| 久久久精品中文字幕麻豆发布| 国产欧美日韩中文久久| 亚洲欧洲制服丝袜| 午夜成人免费电影| 狠狠狠色丁香婷婷综合久久五月| 国产一区欧美一区| 成人高清免费观看| 欧美视频一二三区| 精品国产乱子伦一区| 欧美韩国日本不卡| 一区二区三区精品在线观看| 日韩成人伦理电影在线观看| 国产一区二区三区四| 久久久久九九视频| 国产精品白丝在线| 午夜日韩在线观看| 国产精品一区二区在线观看不卡| 国产**成人网毛片九色| 色香蕉成人二区免费| 91精品国产入口| 国产欧美一区二区精品性色| 亚洲你懂的在线视频| 麻豆精品久久精品色综合| 成人av网在线| 91麻豆精品91久久久久久清纯| 久久综合久久鬼色中文字| 日韩一区日韩二区| 免费精品视频在线| proumb性欧美在线观看| 51精品秘密在线观看| 国产精品天美传媒沈樵| 亚洲国产欧美日韩另类综合| 国产一区二区三区免费在线观看| 欧美在线观看一区二区| 久久久欧美精品sm网站| 亚洲动漫第一页| 国产成人亚洲综合色影视| 欧美高清精品3d| 国产精品久久精品日日| 麻豆精品在线播放| 色综合久久综合| 久久尤物电影视频在线观看| 亚洲精品中文字幕乱码三区| 韩国三级电影一区二区| 欧美日韩一区二区三区高清 | 欧美精品黑人性xxxx| 中文字幕精品一区| 日本 国产 欧美色综合| 色综合中文字幕国产| 日韩一区二区免费在线电影| 亚洲人成伊人成综合网小说| 久久超级碰视频| 在线亚洲高清视频| 国产精品麻豆网站| 精品在线你懂的| 欧美区一区二区三区| 亚洲欧美电影院| 处破女av一区二区| 精品国产电影一区二区| 午夜精品免费在线观看| 99re热视频精品| 国产色婷婷亚洲99精品小说| 美女被吸乳得到大胸91| 91精品欧美久久久久久动漫| 亚洲黄色在线视频| 91网站最新地址| 国产午夜精品美女毛片视频| 久草热8精品视频在线观看| 欧美日韩精品福利| 亚洲成人自拍一区| 色吊一区二区三区| 亚洲三级在线观看| 色综合欧美在线| 一区二区高清在线| 在线视频中文字幕一区二区| 亚洲精品国产无天堂网2021| 91网站最新网址| 一区二区日韩av| 91国产免费观看| 亚洲精品成人少妇| 日本二三区不卡| 一区二区三区国产| 欧美视频一区二区三区在线观看| 亚洲精品高清在线观看| 91同城在线观看| 一区二区三区四区亚洲| 色久优优欧美色久优优| 亚洲乱码一区二区三区在线观看| 91视频.com| 亚洲一区免费在线观看| 欧美日韩国产小视频在线观看| 丝袜美腿亚洲色图| 日韩一二三区视频| 精品一区二区在线视频| 久久人人爽爽爽人久久久| 国产·精品毛片| ●精品国产综合乱码久久久久| 成人黄色网址在线观看| 亚洲一区在线电影| 69p69国产精品| 精品亚洲国产成人av制服丝袜| 精品久久人人做人人爽| 国产91高潮流白浆在线麻豆 | 亚洲一区免费视频| 51午夜精品国产| 麻豆精品精品国产自在97香蕉| 国产日韩欧美激情| 99精品在线观看视频| 亚洲国产精品人人做人人爽| 91精品黄色片免费大全| 国产高清成人在线| 亚洲人妖av一区二区| 欧美日韩夫妻久久| 国产主播一区二区| 亚洲视频一二三| 欧美乱妇23p| 国产成人在线视频播放| 一区二区三区美女| 欧美sm美女调教| 色视频欧美一区二区三区| 日韩国产欧美三级| 国产精品久线观看视频| 欧美一区日韩一区| 国产精品国产三级国产有无不卡| 中文文精品字幕一区二区| 久久九九影视网| 成人av在线播放网站| 色综合天天综合色综合av| 色婷婷久久久亚洲一区二区三区| a级精品国产片在线观看| 91在线免费视频观看| 91丨porny丨中文| 欧美一区二区在线免费观看| 91精品婷婷国产综合久久竹菊| 欧美一卡2卡三卡4卡5免费| 欧美精品一区二区三区蜜桃| 国产日韩av一区二区| 日日夜夜一区二区| 一区二区三区资源| 91精品国产综合久久久久久| 成人激情黄色小说| 久久97超碰国产精品超碰| 亚洲成a人v欧美综合天堂下载| 国产视频视频一区|