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

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

?? treecombobox.cpp

?? hao code hao code hao code hao code hao code
?? CPP
字號:
/****************************************************************/
/*																*/
/*  TreeComboBox.cpp											*/
/*																*/
/*  Implementation of the CTreeComboBox class					*/
/*																*/
/*  Author: John Melas											*/
/*	http://www.cc.ece.ntua.gr/~jmelas							*/
/*	jmelas@cc.ece.ntua.gr										*/
/*																*/
/*  Last updated: August 5, 2004								*/
/*																*/
/****************************************************************/


#include "stdafx.h"
#include "TreeComboBox.h"

#define BUTTON_SIZE 16
#define ICON_SIZE 16


WNDPROC CTreeComboBox::m_parentWndProc = NULL;
CTreeComboBox* CTreeComboBox::m_pActiveCombo = NULL;


IMPLEMENT_DYNAMIC(CTreeComboBox, CButton)


int compare( const void *arg1, const void *arg2 )
{
	return _stricmp( * ( char** ) arg1, * ( char** ) arg2 );
}

void Sort(CString &str)
{
	char seps[] = "\r\n";
	CString items[256];
	char *token;
	int i;
	for (i=0, token = strtok(str.GetBuffer(256), seps);	i<256 && token!=NULL; i++, token = strtok(NULL, seps))
		items[i] = token;
	int max = i;
	
	qsort( (void *)items, (size_t)max, sizeof( char * ), compare );
	
	str = "";
	for (i=0; i<max; i++)
		str += items[i] + "\r\n";
	str.TrimRight("\r\n");
}




void CTreeComboBox::PreSubclassWindow() 
{
	CButton::PreSubclassWindow();

	//create m_edit
	CRect rect;
	GetClientRect(&rect);
	m_multiline = (rect.Height()>(BUTTON_SIZE*2));
	if (m_multiline)
		rect.DeflateRect(2,2,BUTTON_SIZE+2,2);
	else
		rect.DeflateRect(ICON_SIZE+6,4,BUTTON_SIZE+2,4);
	DWORD plus = 0;
	if (m_multiline)
		plus = WS_VSCROLL|ES_MULTILINE|ES_WANTRETURN;
	m_edit.Create(WS_CHILD|WS_VISIBLE
		|ES_AUTOHSCROLL|ES_AUTOVSCROLL|plus,
		rect,this,IDC_TEXTCOMBO); //0x401
	m_font.CreatePointFont(8,"MS Sans Serif");
	m_edit.SetFont(&m_font);
	m_edit.SetCombo((CComboBox*)this);
	m_edit.SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
	m_edit.ModifyStyle(0,WS_TABSTOP);

	CString text;
	GetWindowText(text);
	text.Replace(", ","\r\n");
	m_edit.SetWindowText(text);
	m_edit.UpdateTooltip();
	
	
	//create m_tree
	
	//m_tree.Create(
	m_tree.Create(WS_BORDER|
	TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS|TVS_SHOWSELALWAYS|TVS_DISABLEDRAGDROP, 
	CRect(0,0,0,0),
	GetParent(),
	0);
	DWORD dwStyle = GetWindowLong(m_tree.m_hWnd, GWL_STYLE);
	SetWindowLong(m_tree.m_hWnd, GWL_STYLE, (dwStyle | WS_POPUP));
	m_tree.SetParent(NULL);

	m_tree.SetCombo((CComboBox*)this);
	//m_tree.ModifyStyleEx(0,WS_EX_TOOLWINDOW);
	if (m_multiline)
		m_tree.AllowFolders(FALSE);

	InterceptParentWndProc();
}

void CTreeComboBox::InterceptParentWndProc()
{
	// ASSERT
	CWnd *pwndParent = GetParent();
	if (!pwndParent) return;
	if (!pwndParent->GetSafeHwnd()) return;

	// GET Parent WinProc & SET our function
	if (m_parentWndProc)
		return;
	m_parentWndProc = (WNDPROC)::SetWindowLong(
		pwndParent->GetSafeHwnd(), 
		GWL_WNDPROC, 
		(long)(WNDPROC)ParentWindowProc);
}

void CTreeComboBox::UnInterceptParentWndProc()
{
	// ASSERT
	CWnd *pwndParent = GetParent();
	if (!pwndParent) return;
	if (!pwndParent->GetSafeHwnd()) return;

	// SET Parent WinProc = UNINTERCEPT
	(WNDPROC)::SetWindowLong(
		pwndParent->GetSafeHwnd(), 
		GWL_WNDPROC, 
		(long)(WNDPROC)m_parentWndProc);
}


void CTreeComboBox::OnDestroy() 
{
	// CALL Parent
	CButton::OnDestroy();
	
	// UNINTERCEPT
	UnInterceptParentWndProc();
}

BEGIN_MESSAGE_MAP(CTreeComboBox, CButton)
	//{{AFX_MSG_MAP(CTreeComboBox)
	ON_WM_DESTROY()
	ON_WM_LBUTTONDOWN()
	ON_WM_KILLFOCUS()
	ON_WM_SETFOCUS()
	ON_WM_LBUTTONUP()
	ON_WM_LBUTTONDBLCLK()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


void CTreeComboBox::OnLButtonDown(UINT nFlags, CPoint point)
{
	// CALL Parent
	CButton::OnLButtonDown(nFlags, point);

	m_pressed = TRUE;

	// SHOW Tree
	ShowDropDown();
}


LRESULT CTreeComboBox::WindowProc( UINT message, WPARAM wParam, LPARAM lParam )
{
	
	// CATCH DropDown Keys
	switch (message){
		case WM_KEYDOWN:
		case WM_SYSKEYDOWN:
			switch ((int) wParam){
				case VK_DOWN:
				case VK_UP:
					ShowDropDown();
					return NULL;	// INTERCEPT
				case VK_SPACE:
					return NULL;	// INTERCEPT
			}
	}		


	// CALL Parent
	return CButton::WindowProc(message, wParam, lParam);
}
HTREEITEM CTreeComboBox::GetNextTreeItem(HTREEITEM hItem)
{
	// we return the next HTEEITEM for a tree such as:
	// Root (1)
	//		Child1 (2)
	//			xxxx (3)
	//			yyyy (4)
	//		Chiled2 (5)
	// Item (6)
	
	// has this item got any children
	if (m_tree.ItemHasChildren(hItem))
	{
		return m_tree.GetNextItem(hItem, TVGN_CHILD);
	}
	else if (m_tree.GetNextItem(hItem, TVGN_NEXT) != NULL)
	{
		// the next item at this level
		return m_tree.GetNextItem(hItem, TVGN_NEXT);
	}
	else
	{
		// return the next item after our parent
		hItem = m_tree.GetParentItem(hItem);
		if (hItem == NULL)
		{
			// no parent
			return NULL;
		}
		while (m_tree.GetNextItem(hItem, TVGN_NEXT) == NULL)
		{
			if (!hItem)
				return NULL;
			else
				hItem = m_tree.GetParentItem(hItem);
		}
		// next item that follows our parent
		return m_tree.GetNextItem(hItem, TVGN_NEXT);
	}
}
BOOL CTreeComboBox::FindItemByText(CString strfind)
{
	HTREEITEM hItem = m_tree.GetRootItem();
	while (hItem != NULL)
	{
		CString str = m_tree.GetItemText(hItem);
		if (str == strfind)
		{
			m_tree.SelectItem(hItem);
			//updateimage
			int pos = -1;
			int dummy;
			m_tree.GetItemImage(hItem,pos,dummy);
			if (m_tree.GetImageList(TVSIL_NORMAL)!=NULL)
				UpdateIcon(m_tree.GetImageList(TVSIL_NORMAL)->ExtractIcon(pos));
			return TRUE;
		}
		hItem = GetNextTreeItem(hItem);
	}
	/*CString str;
	m_edit.GetWindowTextA(str);
	if (str != "")*/
	
	return FALSE;
}

void CTreeComboBox::Accept()
{
	HTREEITEM item = m_tree.GetSelectedItem();
	if (item!=NULL)
	{
		CString str = m_tree.GetItemText(item);
		int strpos = -1;
		if (m_multiline)
		{
			CString cur;
			m_edit.GetWindowText(cur);
			strpos = cur.Find(str);
			if (strpos==-1)
			{
				cur.TrimRight("\r\n ");
				cur+="\r\n"+str;
				cur.TrimLeft("\r\n");
				if (m_sort)
					Sort(cur);
				strpos = cur.Find(str);
			}
			str = cur;
		}
		
		//update string
		SetText(str);
		
		//updateimage
		int pos = -1;
		int dummy;
		m_tree.GetItemImage(item,pos,dummy);
		if (m_tree.GetImageList(TVSIL_NORMAL)!=NULL)
			UpdateIcon(m_tree.GetImageList(TVSIL_NORMAL)->ExtractIcon(pos));
		HideDropDown();
		m_edit.SelectText(m_multiline,strpos);
		m_edit.SetFocus();
	}
}

void CTreeComboBox::DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct )
{

	//get dc and rect
	CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
	

	CRect rc = lpDrawItemStruct->rcItem;

	//draw frame
	pDC->DrawEdge(rc, EDGE_SUNKEN, BF_RECT);

	//draw bg
	rc.DeflateRect(2, 2);
	//if (m_multiline)
	//{
	//	int scrollbar_width = GetSystemMetrics(SM_CXVSCROLL);
	//  rc.DeflateRect(scrollbar_width,0,0,0);
	//}
	if (!m_multiline)
		pDC->FillSolidRect(&rc, GetSysColor(COLOR_WINDOW));

	//calc button rect
	CRect rcButton = rc;
	rcButton.left = rcButton.right - BUTTON_SIZE;
	if (rcButton.left < rc.left) 
		rcButton.left = rc.left;

	//calc image rect
	CRect rcImage = rc;
	rcImage.right = rcButton.left - 1;
	if (rcImage.right < rcImage.left) 
		rcImage.right = rcImage.left;

	//draw image
	if (!m_multiline && m_icon!=NULL)
	{
		pDC->DrawState(CPoint(rcImage.left+1,rcImage.top),CSize(ICON_SIZE,ICON_SIZE),m_icon,DST_ICON,HBRUSH(0));
		rcImage.DeflateRect(ICON_SIZE+2,0,0,0);
	}


	//draw focus
	/*rcImage.DeflateRect(1,1,0,1);
	if (lpDrawItemStruct->itemState & ODS_FOCUS) 
	{
		COLORREF c=GetSysColor(COLOR_HIGHLIGHT);
		pDC->FillSolidRect(rcImage,RGB(255-GetRValue(c),255-GetGValue(c),255-GetBValue(c)));
		pDC->DrawFocusRect(rcImage);
	}
	rcImage.DeflateRect(1,1,1,1);

	// GET Caption
	CString strText;
	GetWindowText(strText);

	// DRAW Caption
	if (lpDrawItemStruct->itemState & ODS_FOCUS)
	{
		pDC->SetBkColor(GetSysColor(COLOR_HIGHLIGHT));
		pDC->SetTextColor(GetSysColor(COLOR_HIGHLIGHTTEXT));
		pDC->FillSolidRect(rcImage,GetSysColor(COLOR_HIGHLIGHT));
		rcImage.DeflateRect(1,0,0,0);
		pDC->DrawText(strText, &rcImage, DT_SINGLELINE | DT_VCENTER );
		
	}
	else
	{
		pDC->SetBkColor( GetSysColor(COLOR_WINDOW) );
		pDC->SetTextColor(RGB(0, 0, 0));
		rcImage.DeflateRect(1,0,0,0);
		pDC->DrawText(strText, &rcImage, DT_SINGLELINE | DT_VCENTER );
	}*/

	//draw button
	//pDC->FillSolidRect(rcButton,RGB(234,232,228));
	if (m_multiline)
	{
	//	rcButton.OffsetRect(0,rcButton.Height()-rcButton.Width());
	//	rcButton.bottom=rcButton.top+rcButton.Width();
	}
	CRect frect = rcButton;
	CBrush brBtnShadow(GetSysColor(COLOR_BTNSHADOW));
	CBrush brBtnFace(GetSysColor(COLOR_BTNFACE));
	//if (lpDrawItemStruct->itemState & ODS_SELECTED)
	if (m_pressed && m_pActiveCombo!=NULL)
	{
		pDC->FrameRect(frect, &brBtnShadow);
		frect.DeflateRect(1, 1);
		pDC->FillRect(&frect, &brBtnFace);
		frect.DeflateRect(1, 3, 0, 0);
	}
	else
	{
		pDC->FrameRect(frect, &brBtnFace);
		//frect.DeflateRect(1, 1, 0, 0);
		//DrawFrameControl(lpDrawItemStruct->hDC, &frect, DFC_BUTTON, uStyle);
		pDC->Draw3dRect(frect,GetSysColor(COLOR_BTNFACE),GetSysColor(COLOR_3DDKSHADOW));
		frect.DeflateRect(1, 1, 1, 1);
		pDC->Draw3dRect(frect,GetSysColor(COLOR_3DHILIGHT),GetSysColor(COLOR_3DSHADOW));
		frect.DeflateRect(1, 1, 1, 1);
		pDC->FillRect(&frect, &brBtnFace);
	}

	//draw arrow
	//if (lpDrawItemStruct->itemState & ODS_SELECTED)
	if (m_pressed && m_pActiveCombo!=NULL)
		rcButton.DeflateRect(1,1,0,0);
	CPen penBlack(PS_SOLID, 1, RGB(0, 0, 0));
	CPen* ppenOld = pDC->SelectObject(&penBlack);
	for(long i=0; i<4; i++){
		pDC->MoveTo( rcButton.left + 4 + i, rcButton.top + rcButton.Height()/2 - 2 + i);
		pDC->LineTo( rcButton.left + 4 + 7 - i, rcButton.top + rcButton.Height()/2 - 2 + i);
	}
	pDC->SelectObject(ppenOld);

	m_edit.Invalidate();
}




void CTreeComboBox::ShowDropDown()
{

	if (m_pActiveCombo!=NULL)
	{
		HideDropDown();
		//m_edit.SelectText(m_multiline);
		m_edit.SetFocus();
		return;
	}

	

	CRect rc;
	GetWindowRect(&rc);
	m_tree.SetWindowPos(&wndTopMost,rc.left, rc.bottom, rc.Width(), 220,SWP_SHOWWINDOW);

	CWnd* pTopParent = GetParent()->GetParentOwner();
    if (pTopParent != NULL)
	{  
		pTopParent->SendMessage( WM_NCACTIVATE, TRUE );
		pTopParent->SetRedraw( TRUE );
	}

			
	m_pActiveCombo = this;
}

void CTreeComboBox::HideDropDown()
{
	if (m_pActiveCombo!=NULL) 
	{	
		m_pActiveCombo->GetTree()->ShowWindow( SW_HIDE );
		m_pActiveCombo = NULL;
	}
}

LRESULT CALLBACK CTreeComboBox::ParentWindowProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
	// CHECK Message
	if (nMsg==WM_COMMAND || 
        nMsg==WM_SYSCOMMAND ||
		nMsg==WM_SYSKEYDOWN ||
		nMsg==WM_LBUTTONDOWN ||
		nMsg==WM_NCLBUTTONDOWN)
	{
		// FILTER Messages
		if (!IsMsgOK(hWnd, nMsg, lParam))
			m_pActiveCombo->HideDropDown();
	}
	
	// CALL Parent
	if (!m_parentWndProc) 
		return NULL;
	
	return CallWindowProc( m_parentWndProc, hWnd, nMsg, wParam, lParam );
}

BOOL CTreeComboBox::IsMsgOK(HWND hWnd, UINT nMsg, /*WPARAM wParam,*/ LPARAM lParam)
{
	// ASSERT
	if (!hWnd) 
		return FALSE;
	if (nMsg != WM_COMMAND) 
		return FALSE;
	if (!m_pActiveCombo) 
		return FALSE;
	if ((HWND)lParam != m_pActiveCombo->GetSafeHwnd()) 
		return FALSE;

	//check if mouse pos is in drop down rect
	CRect rc;
	m_pActiveCombo->GetWindowRect(rc);
	CPoint pt;
	GetCursorPos(&pt);
	if (!rc.PtInRect(pt))
		return FALSE;
	
	return TRUE;
}

void CTreeComboBox::OnKillFocus(CWnd* pNewWnd) 
{
	// CALL Parent
	CButton::OnKillFocus(pNewWnd);

	// HIDE Active DropDown
	if (pNewWnd != &m_edit)
		HideDropDown();
}



void CTreeComboBox::OnSetFocus(CWnd* pOldWnd) 
{
	CButton::OnSetFocus(pOldWnd);

	if (!m_pressed)
		m_edit.SetFocus();	
}

void CTreeComboBox::LoadXmlSubTree(CXmlElement *pElement, HTREEITEM hItem)
{
	CXmlElement *pChild = m_xmlDocument.GetFirstChild(pElement);
	while (pChild != NULL)
	{
		CString name = pChild->GetValue("name");
		if (name=="")
			name = pChild->m_strData;
		if (name=="")
			name = pChild->m_strName;
		
		int image = (pChild->m_ChildElements.GetCount()!=0)?0:2;

		HTREEITEM hChildItem = m_tree.InsertItem(name, image, image, hItem);

		// save data
		m_tree.SetItemData(hChildItem, (DWORD)pChild);

		LoadXmlSubTree(pChild, hChildItem);
		
		pChild = m_xmlDocument.GetNextSibling(pElement);
	}
}

void CTreeComboBox::LoadXml(CString filename, int bmp)
{
	//m_imagelist.Create(bmp,16,1,RGB(255,0,0));
	m_imagelist.Create(bmp,16,1,RGB(255,0,0));
	m_tree.SetImageList(&m_imagelist,TVSIL_NORMAL);

	m_xmlDocument.DeleteContents();
	if (m_xmlDocument.Load(filename))
	{
		m_tree.DeleteAllItems();
		LoadXmlSubTree(m_xmlDocument.GetRootElement(), TVI_ROOT);
	}
}
void CTreeComboBox::LoadString(CString info, int bmp)
{
	if (!m_imagelist)
	{
		m_imagelist.Create(bmp,16,1,RGB(255,255,255));
		m_tree.SetImageList(&m_imagelist,TVSIL_NORMAL);
	}
	
	m_xmlDocument.DeleteContents();
	if (m_xmlDocument.LoadString(info))
	{
		m_tree.DeleteAllItems();
		LoadXmlSubTree(m_xmlDocument.GetRootElement(), TVI_ROOT);
	}
}

void CTreeComboBox::OnLButtonUp(UINT nFlags, CPoint point) 
{
	m_pressed = FALSE;
	if (m_pActiveCombo)
		Invalidate();

	CButton::OnLButtonUp(nFlags, point);
}

void CTreeComboBox::OnLButtonDblClk(UINT nFlags, CPoint point) 
{
	OnLButtonDown(nFlags, point);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美极品另类videosde| 国产精品资源网站| 亚洲婷婷综合久久一本伊一区| 欧美大肚乱孕交hd孕妇| 欧美一区二区三区在线看| 欧美麻豆精品久久久久久| 欧美日韩亚洲综合一区二区三区 | 久久久不卡网国产精品二区| 久久久蜜桃精品| 国产色产综合色产在线视频 | 成人欧美一区二区三区视频网页| 中文字幕免费不卡| 亚洲欧洲无码一区二区三区| 国产精品麻豆网站| 一区二区欧美视频| 天天影视网天天综合色在线播放| 日本亚洲免费观看| 国产精品一区专区| 99这里只有久久精品视频| 91福利国产精品| 51久久夜色精品国产麻豆| 精品久久久久久久久久久院品网| 亚洲国产精华液网站w| 亚洲精品国产高清久久伦理二区| 亚洲bt欧美bt精品| 精品一区二区三区免费毛片爱| 国产成人精品影视| 欧美色视频在线观看| 欧美va天堂va视频va在线| 中文天堂在线一区| 婷婷久久综合九色国产成人 | 中文字幕亚洲在| 日韩av电影一区| 99视频精品在线| 欧美精品色一区二区三区| 久久精品男人的天堂| 亚洲精品成人悠悠色影视| 久久国产日韩欧美精品| 99精品欧美一区二区蜜桃免费| 7777精品伊人久久久大香线蕉超级流畅| 日韩一区二区麻豆国产| 中文字幕一区二区三区不卡 | 一区二区高清视频在线观看| 亚洲一区二区在线免费看| 国产美女精品一区二区三区| 色999日韩国产欧美一区二区| 日韩欧美色综合| 亚洲精品免费在线观看| 国产精品一卡二卡在线观看| 欧美色图免费看| 亚洲免费观看高清在线观看| 极品美女销魂一区二区三区免费| 在线中文字幕一区二区| 中文字幕成人网| 久久99精品久久久久久| 在线观看视频一区二区| 国产精品美女视频| 琪琪久久久久日韩精品| 欧美日韩一区三区| 亚洲精品午夜久久久| 成人精品国产免费网站| 欧美精品一区在线观看| 老司机精品视频在线| 欧美日韩国产a| 亚洲va天堂va国产va久| 欧美丝袜丝nylons| 亚洲精品视频在线| 色拍拍在线精品视频8848| 国产精品超碰97尤物18| 国产91精品在线观看| 久久久亚洲高清| 国产精品一区二区男女羞羞无遮挡| 日韩小视频在线观看专区| 日本vs亚洲vs韩国一区三区| 欧美亚洲国产一区二区三区va| 亚洲色图在线播放| 色哦色哦哦色天天综合| 亚洲午夜一二三区视频| 在线欧美日韩精品| 天堂va蜜桃一区二区三区| 欧美高清激情brazzers| 免费观看30秒视频久久| 精品噜噜噜噜久久久久久久久试看| 秋霞影院一区二区| www国产成人| 国产99久久久国产精品| 国产精品久久久久久福利一牛影视 | 亚洲精品写真福利| 欧美午夜精品久久久久久超碰| 亚洲国产成人av| 日韩午夜激情视频| 国产福利精品一区| 亚洲色欲色欲www在线观看| 91福利在线导航| 亚洲成人福利片| 欧美成人官网二区| 波多野结衣91| 亚洲国产欧美在线| 精品毛片乱码1区2区3区| 成人a免费在线看| 亚洲国产精品麻豆| 精品少妇一区二区三区在线播放| 国产乱码精品一区二区三| 中文字幕在线播放不卡一区| 欧美中文字幕一区| 韩国v欧美v日本v亚洲v| 一区二区三区在线免费播放| 欧美一区日韩一区| 成人97人人超碰人人99| 首页亚洲欧美制服丝腿| 日本一区二区高清| 777亚洲妇女| 成人免费看的视频| 日韩精品乱码av一区二区| 精品99一区二区| 欧美在线视频全部完| 狠狠色丁香婷综合久久| 亚洲理论在线观看| 久久精品亚洲国产奇米99| 欧美视频中文字幕| 国产.欧美.日韩| 美女国产一区二区| 亚洲综合无码一区二区| 国产亚洲欧洲997久久综合| 欧美色中文字幕| 99视频一区二区三区| 美国欧美日韩国产在线播放| 亚洲欧美日韩国产一区二区三区 | 欧美日韩在线播放一区| 成人综合激情网| 麻豆专区一区二区三区四区五区| 亚洲欧美一区二区久久| 国产视频一区在线播放| 日韩免费电影一区| 欧美精品少妇一区二区三区| 91成人网在线| eeuss鲁片一区二区三区| 狠狠v欧美v日韩v亚洲ⅴ| 天堂久久久久va久久久久| 亚洲国产一区二区三区 | 久久蜜桃一区二区| 69久久99精品久久久久婷婷 | 久久久久久免费网| 欧美一区二区福利在线| 欧美日韩午夜在线视频| 日本电影欧美片| 色拍拍在线精品视频8848| 一本高清dvd不卡在线观看| av在线综合网| 成人av在线资源网| aa级大片欧美| 色综合久久久久综合99| 91视频.com| 91麻豆国产自产在线观看| 91小视频在线| 色av成人天堂桃色av| 欧美性xxxxx极品少妇| 欧美日韩另类国产亚洲欧美一级| 色94色欧美sute亚洲线路一久| 色综合久久久久综合体桃花网| av电影在线观看完整版一区二区| 成人一区在线看| 一本色道a无线码一区v| 欧美在线短视频| 欧美一区二区三区电影| 欧美成人伊人久久综合网| 久久综合色一综合色88| 国产亚洲女人久久久久毛片| 国产精品美女久久久久av爽李琼| 国产精品久久久久久久久快鸭| 综合电影一区二区三区| 亚洲午夜电影在线观看| 免费成人在线视频观看| 国产一区二区三区香蕉| www.亚洲色图.com| 欧美日韩一区二区在线观看| 91精品一区二区三区久久久久久 | 日本精品一区二区三区四区的功能| 91麻豆免费观看| 这里只有精品99re| 国产免费成人在线视频| 一区二区三区中文在线观看| 免费国产亚洲视频| 成+人+亚洲+综合天堂| 精品视频999| 国产校园另类小说区| 伊人婷婷欧美激情| 精品在线免费观看| 色欧美乱欧美15图片| 久久精品在线观看| 亚洲成人免费在线观看| 国产一区 二区| 欧美日韩在线播| 中文字幕精品三区| 日韩成人免费在线| 91论坛在线播放| 久久久激情视频| 日韩和欧美一区二区| 色综合久久久久综合99| 久久久无码精品亚洲日韩按摩|