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

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

?? mylistctrl1.cpp

?? 電力監控系統 實時告警處理程序
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
	ASSERT(nItem < GetItemCount());
	if ((nItem < 0) || nItem >= GetItemCount())
		return;
	ASSERT(nSubItem >= 0);
	ASSERT(nSubItem < GetColumns());
	if ((nSubItem < 0) || nSubItem >= GetColumns())
		return;
	
	CRect rect;
	if (nSubItem == -1)
	{
		GetItemRect(nItem, &rect, LVIR_BOUNDS);
	}
	else
	{
		GetSubItemRect(nItem, nSubItem, LVIR_BOUNDS, rect);
	}
	
	InvalidateRect(&rect);
	UpdateWindow();
}

///////////////////////////////////////////////////////////////////////////////
// GetColumns
int CMyListCtrl1::GetColumns()
{
	return GetHeaderCtrl()->GetItemCount();
}

///////////////////////////////////////////////////////////////////////////////
// GetItemData
//
// The GetItemData and SetItemData functions allow for app-specific data
// to be stored, by using an extra field in the MyListCtrl1DATA struct.
//
DWORD CMyListCtrl1::GetItemData(int nItem)
{
	ASSERT(nItem >= 0);
	ASSERT(nItem < GetItemCount());
	if ((nItem < 0) || nItem >= GetItemCount())
		return 0;
	
	MyListCtrl1DATA *pXLCD = (MyListCtrl1DATA *) CListCtrl::GetItemData(nItem);
	if (!pXLCD)
	{
		return 0;
	}
	
	return pXLCD->dwItemData;
}

///////////////////////////////////////////////////////////////////////////////
// SetItemData
BOOL CMyListCtrl1::SetItemData(int nItem, DWORD dwData)
{
	ASSERT(nItem >= 0);
	ASSERT(nItem < GetItemCount());
	if ((nItem < 0) || nItem >= GetItemCount())
		return FALSE;
	
	MyListCtrl1DATA *pXLCD = (MyListCtrl1DATA *) CListCtrl::GetItemData(nItem);
	if (!pXLCD)
	{
		return FALSE;
	}
	
	pXLCD->dwItemData = dwData;
	
	return TRUE;
}

///////////////////////////////////////////////////////////////////////////////
// GetHeaderCheckedState
//
// The GetHeaderCheckedState and SetHeaderCheckedState may be used to toggle
// the checkbox in a column header.
//     0 = no checkbox
//     1 = unchecked
//     2 = checked
//
int CMyListCtrl1::GetHeaderCheckedState(int nSubItem)
{
	ASSERT(nSubItem >= 0);
	ASSERT(nSubItem < GetColumns());
	if ((nSubItem < 0) || nSubItem >= GetColumns())
		return -1;
	
	// use the image index (0 or 1) to indicate the checked status
	HDITEM hditem;
	hditem.mask = HDI_IMAGE;
	
	m_HeaderCtrl.GetItem(nSubItem, &hditem);
	return hditem.iImage;
	
}

///////////////////////////////////////////////////////////////////////////////
// SetHeaderCheckedState
BOOL CMyListCtrl1::SetHeaderCheckedState(int nSubItem, int nCheckedState)
{
	
	ASSERT(nSubItem >= 0);
	ASSERT(nSubItem < GetColumns());
	if ((nSubItem < 0) || nSubItem >= GetColumns())
		return FALSE;
	ASSERT(nCheckedState == 0 || nCheckedState == 1 || nCheckedState == 2);
	HDITEM hditem;
	hditem.mask = HDI_IMAGE;
	
	hditem.iImage=nCheckedState+1;
	m_HeaderCtrl.SetItem(nSubItem, &hditem);
	
	int nItem;
	if(nCheckedState==2)//全部選中
	{
		//根據check更新數據庫中的數據。。。。
		switch(nSubItem) {
		case 0:
			//	bool SetIfShow(int nCounts,bool bResult);
			
			for (nItem=0;nItem<GetItemCount();nItem++)
			{
				m_pEvtDb->SetIfShow(nItem,TRUE);//nCheckedState==2
				SetEnabled(nItem,1);
			}
			break;
		case 2 :
			for (nItem=0;nItem<GetItemCount();nItem++)
			{
				if(m_pEvtDb->GetIfShow(nItem))
					m_pEvtDb->SetIfPlaySound(nItem,TRUE);
				else
				{
					m_pEvtDb->SetIfPlaySound(nItem,0);
					SetCheckbox(nItem,2,0);
				}
			}
			break;
		case 3 :
			for (nItem=0;nItem<GetItemCount();nItem++)
			{
				if(m_pEvtDb->GetIfShow(nItem))
					m_pEvtDb->SetIfPlayRing(nItem,TRUE);
				else
				{
					SetCheckbox(nItem,3,0);
					m_pEvtDb->SetIfPlayRing(nItem,0);
				}
			}
			break;
		case 4:
			for (nItem=0;nItem<GetItemCount();nItem++)
			{
				if(m_pEvtDb->GetIfShow(nItem))
					m_pEvtDb->SetIfPlayAlarm(nItem,TRUE);
				else
				{
					SetCheckbox(nItem,4,0);
					m_pEvtDb->SetIfPlayAlarm(nItem,0);
				}
			}
			break;
		case 5 :
			for (nItem=0;nItem<GetItemCount();nItem++)
			{
				if(m_pEvtDb->GetIfShow(nItem))
					m_pEvtDb->SetIfPicture(nItem,TRUE);
				else
				{
					SetCheckbox(nItem,5,0);
					m_pEvtDb->SetIfPicture(nItem,0);
				}
			}
			break;
		case 6 :
			for (nItem=0;nItem<GetItemCount();nItem++)
			{
				if(m_pEvtDb->GetIfShow(nItem))
					m_pEvtDb->SetIfPrint(nItem,TRUE);
				else
				{
					SetCheckbox(nItem,6,0);
					m_pEvtDb->SetIfPrint(nItem,0);
				}
			}
			break;
		default:
			break;
		}
	}
	if(nCheckedState==1)//1為全部沒有選中
	{
		switch(nSubItem) {
		case 0:
			//	bool SetIfShow(int nCounts,bool bResult);
			for (nItem=0;nItem<GetItemCount();nItem++)
			{
				
				m_pEvtDb->SetIfShow(nItem,0);
				SetEnabled(nItem,0);
				//SetCheckbox(nItem,0,0);
				m_pEvtDb->SetIfPlaySound(nItem,0);
				//	SetCheckbox(nItem,2,0);
				m_pEvtDb->SetIfPlayRing(nItem,0);
				//	SetCheckbox(nItem,3,0);
				m_pEvtDb->SetIfPlayAlarm(nItem,0);
				//	SetCheckbox(nItem,4,0);
				m_pEvtDb->SetIfPicture(nItem,0);
				//	SetCheckbox(nItem,5,0);
				m_pEvtDb->SetIfPrint(nItem,0);
				//	SetCheckbox(nItem,6,0);
				//	UpdateData(true);
			}
			break;
		case 2 :
			for (nItem=0;nItem<GetItemCount();nItem++)
			{
				m_pEvtDb->SetIfPlaySound(nItem,0);
			}
			break;
		case 3 :
			for (nItem=0;nItem<GetItemCount();nItem++)
			{
				m_pEvtDb->SetIfPlayRing(nItem,0);
			}
			break;
		case 4:
			for (nItem=0;nItem<GetItemCount();nItem++)
			{
				m_pEvtDb->SetIfPlayAlarm(nItem,0);
			}
			break;
		case 5 :
			for (nItem=0;nItem<GetItemCount();nItem++)
			{
				m_pEvtDb->SetIfPicture(nItem,0);
			}
			break;
		case 6 :
			for (nItem=0;nItem<GetItemCount();nItem++)
			{
				m_pEvtDb->SetIfPrint(nItem,0);
			}
			break;
		default:
			break;
		}
	}
	return TRUE;
}

///////////////////////////////////////////////////////////////////////////////
// OnColumnClick
BOOL CMyListCtrl1::OnColumnClick(NMHDR* pNMHDR, LRESULT* pResult)
{
	NMLISTVIEW* pnmlv = (NMLISTVIEW*)pNMHDR;
	
	int nSubItem = pnmlv->iSubItem;
	if(nSubItem==1  )
		return false;
	if(nSubItem==0 || nSubItem== 2 ||nSubItem==3 || nSubItem==4 || nSubItem==5 || nSubItem==6 )
	{	
		int nCheckedState = GetHeaderCheckedState(nSubItem)-1;
		
		// 0 = no checkbox
		if (nCheckedState != 0)
		{
			nCheckedState = (nCheckedState == 1) ? 2 : 1;
			SetHeaderCheckedState(nSubItem, nCheckedState);
			
			m_HeaderCtrl.UpdateWindow();
			
			for (int nItem = 0; nItem < GetItemCount(); nItem++)
			{
				MyListCtrl1DATA *pXLCD = (MyListCtrl1DATA *) CListCtrl::GetItemData(nItem);
				if (!pXLCD)
				{
					continue;
				}
				
				if (pXLCD[nSubItem].nCheckedState != -1)
				{
					pXLCD[nSubItem].nCheckedState = nCheckedState - 1;
					UpdateSubItem(nItem, nSubItem);
					SetCheckbox(nItem,nSubItem,pXLCD[nSubItem].nCheckedState);//4.16
				}
			}
		}
		else
		{
			nCheckedState = 1;//(nCheckedState == 1) ? 2 : 1;;
			SetHeaderCheckedState(nSubItem, nCheckedState);
			
			m_HeaderCtrl.UpdateWindow();
			
			for (int nItem = 0; nItem < GetItemCount(); nItem++)
			{
				MyListCtrl1DATA *pXLCD = (MyListCtrl1DATA *) CListCtrl::GetItemData(nItem);
				if (!pXLCD)
				{
					continue;
				}
				
				if (pXLCD[nSubItem].nCheckedState != -1)
				{
					pXLCD[nSubItem].nCheckedState = nCheckedState - 1;	
					UpdateSubItem(nItem, nSubItem);
					SetCheckbox(nItem,nSubItem,pXLCD[nSubItem].nCheckedState);//4.16
				}	
				if(pXLCD[0].nCheckedState==0)
				{
					SetCheckbox(nItem,2,0);
					SetCheckbox(nItem,3,0);
					SetCheckbox(nItem,4,0);
					SetCheckbox(nItem,5,0);
					SetCheckbox(nItem,6,0);
				}
			}
		}
	}
	*pResult = 0;
	return FALSE;		// return FALSE to send message to parent also -
	
	// NOTE:  MSDN documentation is incorrect
}

///////////////////////////////////////////////////////////////////////////////
// CountCheckedItems
int CMyListCtrl1::CountCheckedItems(int nSubItem)
{
	ASSERT(nSubItem >= 0);
	ASSERT(nSubItem < GetColumns());
	if ((nSubItem < 0) || nSubItem >= GetColumns())
		return 0;
	
	int nCount = 0;
	
	for (int nItem = 0; nItem < GetItemCount(); nItem++)
	{
		MyListCtrl1DATA *pXLCD = (MyListCtrl1DATA *) CListCtrl::GetItemData(nItem);
		if (!pXLCD)
		{
			continue;
		}
		
		if (pXLCD[nSubItem].nCheckedState == 1)
			nCount++;
	}
	
	return nCount;
}

///////////////////////////////////////////////////////////////////////////////
// OnSysColorChange
void CMyListCtrl1::OnSysColorChange()
{
	
	CListCtrl::OnSysColorChange();
	
	m_cr3DFace        = ::GetSysColor(COLOR_3DFACE);
	m_cr3DHighLight   = ::GetSysColor(COLOR_3DHIGHLIGHT);
	m_cr3DShadow      = ::GetSysColor(COLOR_3DSHADOW);
	m_crBtnFace       = ::GetSysColor(COLOR_BTNFACE);
	m_crBtnShadow     = ::GetSysColor(COLOR_BTNSHADOW);
	m_crBtnText       = ::GetSysColor(COLOR_BTNTEXT);
	m_crGrayText      = ::GetSysColor(COLOR_GRAYTEXT);
	m_crHighLight     = ::GetSysColor(COLOR_HIGHLIGHT);
	m_crHighLightText = ::GetSysColor(COLOR_HIGHLIGHTTEXT);
	m_crWindow        = ::GetSysColor(COLOR_WINDOW);
	m_crWindowText    = ::GetSysColor(COLOR_WINDOWTEXT);
}


#ifndef NO_MyListCtrl1_TOOL_TIPS

///////////////////////////////////////////////////////////////////////////////
// OnToolHitTest
int CMyListCtrl1::OnToolHitTest(CPoint point, TOOLINFO * pTI) const
{
	LVHITTESTINFO lvhitTestInfo;
	
	lvhitTestInfo.pt = point;
	
	int nItem = ListView_SubItemHitTest(this->m_hWnd, &lvhitTestInfo);
	int nSubItem = lvhitTestInfo.iSubItem;
	
	UINT nFlags = lvhitTestInfo.flags;
	
	if (nFlags & LVHT_ONITEMLABEL)
	{
		// If it did fall on a list item,
		// and it was also hit one of the
		// item specific subitems we wish to show tool tips for
		
		// get the client (area occupied by this control
		RECT rcClient;
		GetClientRect(&rcClient);
		
		// fill in the TOOLINFO structure
		pTI->hwnd = m_hWnd;
		pTI->uId = (UINT) (nItem * 1000 + nSubItem + 1);
		pTI->lpszText = LPSTR_TEXTCALLBACK;
		pTI->rect = rcClient;
		
		return pTI->uId;	// By returning a unique value per listItem,
		// we ensure that when the mouse moves over another
		// list item, the tooltip will change
	}
	else
	{
		//Otherwise, we aren't interested, so let the message propagate
		return -1;
	}
}

///////////////////////////////////////////////////////////////////////////////
// OnToolTipText
BOOL CMyListCtrl1::OnToolTipText(UINT /*id*/, NMHDR * pNMHDR, LRESULT * pResult)
{
	UINT nID = pNMHDR->idFrom;
	
	if (nID == 0) 
		return TRUE;	// do not allow display of automatic tooltip,
	// or our tooltip will disappear
	
	// handle both ANSI and UNICODE versions of the message
	TOOLTIPTEXTA* pTTTA = (TOOLTIPTEXTA*)pNMHDR;
	TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR;
	
	*pResult = 0;
	
	// get the mouse position
	const MSG* pMessage;
	pMessage = GetCurrentMessage();
	ASSERT(pMessage);
	CPoint pt;
	pt = pMessage->pt;		// get the point from the message
	ScreenToClient(&pt);	// convert the point's coords to be relative to this control
	
	// see if the point falls onto a list item
	
	LVHITTESTINFO lvhitTestInfo;
	
	lvhitTestInfo.pt = pt;
	
	int nItem = SubItemHitTest(&lvhitTestInfo);
	int nSubItem = lvhitTestInfo.iSubItem;
	
	UINT nFlags = lvhitTestInfo.flags;
	
	// nFlags is 0 if the SubItemHitTest fails
	// Therefore, 0 & <anything> will equal false
	if (nFlags & LVHT_ONITEMLABEL)
	{
		// If it did fall on a list item,
		// and it was also hit one of the
		// item specific subitems we wish to show tooltips for
		
		CString strToolTip;
		strToolTip = _T("");
		
		MyListCtrl1DATA *pXLCD = (MyListCtrl1DATA *) CListCtrl::GetItemData(nItem);
		if (pXLCD)
		{
			strToolTip = pXLCD[nSubItem].strToolTip;
		}
		
		if (!strToolTip.IsEmpty())
		{
			// If there was a CString associated with the list item,
			// copy it's text (up to 80 characters worth, limitation 
			// of the TOOLTIPTEXT structure) into the TOOLTIPTEXT 
			// structure's szText member
			
#ifndef _UNICODE
			if (pNMHDR->code == TTN_NEEDTEXTA)
				lstrcpyn(pTTTA->szText, strToolTip, 80);
			else
				_mbstowcsz(pTTTW->szText, strToolTip, 80);
#else
			if (pNMHDR->code == TTN_NEEDTEXTA)
				_wcstombsz(pTTTA->szText, strToolTip, 80);
			else
				lstrcpyn(pTTTW->szText, strToolTip, 80);
#endif
			return FALSE;	 // we found a tool tip,
		}
	}
	
	return FALSE;	// we didn't handle the message, let the 
	// framework continue propagating the message
}

///////////////////////////////////////////////////////////////////////////////
// SetItemToolTipText
BOOL CMyListCtrl1::SetItemToolTipText(int nItem, int nSubItem, LPCTSTR lpszToolTipText)
{
	ASSERT(nItem >= 0);
	ASSERT(nItem < GetItemCount());
	if ((nItem < 0) || nItem >= GetItemCount())
		return FALSE;
	ASSERT(nSubItem >= 0);
	ASSERT(nSubItem < GetColumns());
	if ((nSubItem < 0) || nSubItem >= GetColumns())
		return FALSE;
	
	MyListCtrl1DATA *pXLCD = (MyListCtrl1DATA *) CListCtrl::GetItemData(nItem);
	if (!pXLCD)
	{
		return FALSE;
	}
	
	pXLCD[nSubItem].strToolTip = lpszToolTipText;
	
	return TRUE;
}

///////////////////////////////////////////////////////////////////////////////
// GetItemToolTipText
CString CMyListCtrl1::GetItemToolTipText(int nItem, int nSubItem)
{
	CString strToolTip;
	strToolTip = _T("");
	
	ASSERT(nItem >= 0);
	ASSERT(nItem < GetItemCount());
	if ((nItem < 0) || nItem >= GetItemCount())
		return strToolTip;
	ASSERT(nSubItem >= 0);
	ASSERT(nSubItem < GetColumns());
	if ((nSubItem < 0) || nSubItem >= GetColumns())
		return strToolTip;
	
	MyListCtrl1DATA *pXLCD = (MyListCtrl1DATA *) CListCtrl::GetItemData(nItem);
	if (pXLCD)
	{
		strToolTip = pXLCD[nSubItem].strToolTip;
	}
	
	return strToolTip;
}

///////////////////////////////////////////////////////////////////////////////
// DeleteAllToolTips
void CMyListCtrl1::DeleteAllToolTips()
{
	int nRow = GetItemCount();
	int nCol = GetColumns();
	
	for (int nItem = 0; nItem < nRow; nItem++)
	{
		MyListCtrl1DATA *pXLCD = (MyListCtrl1DATA *) CListCtrl::GetItemData(nItem);
		if (pXLCD)
			for (int nSubItem = 0; nSubItem < nCol; nSubItem++)
				pXLCD[nSubItem].strToolTip = _T("");
	}
}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品蜜臀在线观看| 国产伦精品一区二区三区视频青涩 | 26uuu色噜噜精品一区| 国产精品不卡一区二区三区| 日本大胆欧美人术艺术动态| 日本精品一区二区三区高清| 久久综合久色欧美综合狠狠| 午夜精品久久久久久久久久| 99视频一区二区三区| 欧美精品一区二区三区高清aⅴ| 亚洲精品视频在线观看网站| 成人av电影在线网| 久久青草欧美一区二区三区| 六月丁香综合在线视频| 欧美欧美午夜aⅴ在线观看| 亚洲另类中文字| 不卡av在线免费观看| 国产人成亚洲第一网站在线播放| 免费成人小视频| 日韩欧美中文一区二区| 午夜欧美电影在线观看| 色哟哟国产精品| 国产精品久久久久久久浪潮网站 | 日韩精品一区二区三区在线观看| 亚洲综合在线五月| 91福利视频久久久久| 亚洲视频免费看| 91蜜桃在线观看| 亚洲精品乱码久久久久久久久 | 91福利在线看| 夜夜嗨av一区二区三区网页| 色综合欧美在线| 一区二区三区日本| 欧美亚洲一区二区三区四区| 亚洲一级不卡视频| 7777精品久久久大香线蕉| 日韩成人伦理电影在线观看| 欧美一级艳片视频免费观看| 日本免费在线视频不卡一不卡二 | 国产精品久久久久久久久久免费看| 国产精品一二三四五| 国产亚洲视频系列| 不卡影院免费观看| 曰韩精品一区二区| 在线播放亚洲一区| 美女免费视频一区二区| 久久久久久亚洲综合| 成人av资源网站| 国产一区欧美二区| 亚洲欧洲另类国产综合| 色88888久久久久久影院野外| 亚洲成人7777| 精品国产第一区二区三区观看体验| 激情亚洲综合在线| 国产精品久久久久久久久晋中| 91蝌蚪porny九色| 奇米影视7777精品一区二区| 久久久精品国产免费观看同学| 成人动漫一区二区在线| 亚洲高清免费视频| 欧美精品一区二区三区久久久| 成人综合在线网站| 香蕉久久一区二区不卡无毒影院 | 国产高清精品久久久久| 亚洲欧洲制服丝袜| 日韩欧美电影一二三| 北条麻妃一区二区三区| 午夜视频在线观看一区二区 | 成人白浆超碰人人人人| 亚洲精品日韩专区silk| 欧美一卡在线观看| 91小视频免费看| 精品一区二区影视| 一区二区三区欧美日| 2023国产精品自拍| 欧美综合天天夜夜久久| 国产乱国产乱300精品| 亚洲综合一二三区| 国产精品美女久久久久aⅴ国产馆| 在线观看亚洲一区| 成人午夜视频网站| 免费观看日韩av| 亚洲专区一二三| 国产欧美1区2区3区| 91精品国产aⅴ一区二区| 成人免费黄色大片| 国产一二精品视频| 日本网站在线观看一区二区三区| 国产精品黄色在线观看| 欧美v日韩v国产v| 欧美日韩一区二区三区在线看| 岛国精品在线观看| 毛片不卡一区二区| 一区二区三区在线免费观看| 欧美激情一区二区三区在线| 日韩欧美一级二级三级久久久| 91久久精品网| 99精品欧美一区| 国产成人免费高清| 国产露脸91国语对白| 老司机免费视频一区二区 | 国产一区二区三区四区在线观看| 亚洲午夜在线电影| 亚洲精品第1页| 国产精品欧美久久久久无广告| 精品sm捆绑视频| 精品理论电影在线观看 | 国产成人亚洲综合a∨婷婷 | 久久九九久精品国产免费直播| 日韩视频不卡中文| 91精品国产综合久久久久久漫画 | 久久天天做天天爱综合色| 日韩欧美色电影| 日韩精品一区二区三区视频| 精品区一区二区| 精品女同一区二区| 久久久精品免费网站| 国产日产欧美一区二区三区| 欧美国产精品劲爆| 国产欧美va欧美不卡在线| 中文字幕 久热精品 视频在线| 亚洲国产激情av| ...xxx性欧美| 亚洲一区影音先锋| 免费成人美女在线观看| 精品综合久久久久久8888| 国产精品白丝jk白祙喷水网站| 国产激情一区二区三区| 97精品超碰一区二区三区| 日本国产一区二区| 欧美剧在线免费观看网站 | 欧美蜜桃一区二区三区| 欧美一区二区三区四区五区| 精品久久久久久久久久久院品网| 久久久精品日韩欧美| 中文字幕字幕中文在线中不卡视频| 亚洲美女视频一区| 日韩黄色小视频| 国产乱码精品1区2区3区| 97精品久久久午夜一区二区三区| 欧美午夜免费电影| 久久综合久色欧美综合狠狠| 国产精品盗摄一区二区三区| 亚洲高清免费观看高清完整版在线观看| 日本一区中文字幕| 成人自拍视频在线观看| 欧美伊人久久大香线蕉综合69| 欧美白人最猛性xxxxx69交| 国产精品久久久久影院| 午夜久久久久久久久| 国产99久久久久久免费看农村| 色噜噜狠狠一区二区三区果冻| 欧美一三区三区四区免费在线看 | 中文字幕欧美日本乱码一线二线| 亚洲三级小视频| 久久成人麻豆午夜电影| 91蜜桃在线免费视频| 日韩精品一区二区三区中文精品| 亚洲欧美怡红院| 久久超碰97中文字幕| 日本丰满少妇一区二区三区| 久久美女艺术照精彩视频福利播放| 亚洲人成7777| 国产成人综合精品三级| 欧美日韩国产一二三| 国产精品入口麻豆原神| 免费看欧美美女黄的网站| 在线观看视频一区二区| 国产欧美日韩另类视频免费观看| 日本午夜精品视频在线观看| 色就色 综合激情| 国产日韩欧美激情| 日韩精品乱码av一区二区| 色婷婷综合久久久中文一区二区 | 午夜精品免费在线| 91网站最新网址| 久久色在线视频| 久久99久国产精品黄毛片色诱| 色婷婷综合在线| 亚洲天堂久久久久久久| 国产a精品视频| 国产偷国产偷亚洲高清人白洁 | 奇米888四色在线精品| 欧美在线观看视频在线| 国产精品你懂的| 高清不卡在线观看av| 久久久综合激的五月天| 麻豆视频观看网址久久| 欧美一区二区三区小说| 免费观看一级欧美片| 欧美一区在线视频| 美女视频免费一区| 欧美一区二区日韩| 久久激情五月激情| 精品国产乱码久久久久久图片 | 国产日韩欧美一区二区三区综合| 国产一区二区电影| 国产网站一区二区三区| 成人妖精视频yjsp地址| 国产精品全国免费观看高清|