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

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

?? stockgraph.cpp

?? 股票軟件
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
void CStockGraph::DrawNoDataInfo( CDC * pDC )
{
	DECLARE_COLOR_DEFINATION

	CKData	&	kdata	=	m_CurStock.GetKData(m_nCurKType);
	if( 0 == kdata.GetSize() )
	{
		CString	strNoKData = "無歷史數據", strTemp;
		strTemp		=	CString(m_CurStock.GetStockInfo().GetStockName()) + "(" + m_CurStock.GetStockInfo().GetStockCode() + ")";
		strTemp		+=	(LPCTSTR)AfxGetKTypeString( m_nCurKType );
		strNoKData	=	strTemp + strNoKData;
		pDC->SetBkColor( clrBK );
		pDC->SetTextColor( clrTitle );
		pDC->TextOut( m_rectAll.left+20, m_rectAll.top+20,  strNoKData );
	}
}

void CStockGraph::DrawDateAxis( CDC * pDC )
{
	CHECK_NODATATODRAW
	DECLARE_COLOR_DEFINATION

	CRect	rect	=	m_rectCenter;
	rect.top	=	m_rectAll.bottom - m_nMarginBottom + 1;
	pDC->FillSolidRect( &rect, clrBK );
	pDC->SetBkColor( clrBK );
	pDC->SetTextColor( clrDJ );

	CKData & kdata	=	m_CurStock.GetKData( m_nCurKType );
	BOOL	bDayOrMin	=	CKData::IsDayOrMin(m_nCurKType);
	int		y	=	m_rectAll.bottom - m_nMarginBottom + 2;
	int	xLast	=	0;
	for( int k=m_nIndexStart; k<=m_nIndexEnd; k++ )
	{
		if( k > 0 && k < kdata.GetSize() )
		{
			CSPTime	sptimeLast, sptime;
			if( sptimeLast.FromStockTime( kdata.ElementAt(k-1).m_date, bDayOrMin )
				&& sptime.FromStockTime( kdata.ElementAt(k).m_date, bDayOrMin ) )
			{
				CString	strText;
				if( (CKData::ktypeDay == m_nCurKType )
					&& (sptimeLast.GetMonth() != sptime.GetMonth()) )
						strText	=	sptime.Format( "%m" );
				else if( (CKData::ktypeWeek == m_nCurKType || CKData::ktypeMonth == m_nCurKType)
					&& (sptimeLast.GetYear() != sptime.GetYear()) )
						strText	=	sptime.Format( "%y" );
				else if( !CKData::IsDayOrMin(m_nCurKType)
					&& (sptimeLast.GetDay() != sptime.GetDay()) )
						strText	=	sptime.Format( "%d" );
				CRect	rectK;
				if( strText.GetLength() > 0 && GetOneKLineRect( k, &rectK, NULL, NULL, NULL ) && xLast < rectK.left )
				{
					pDC->TextOut( rectK.left, y, strText );
					xLast	=	rectK.left + pDC->GetTextExtent(strText).cx;
				}
			}
		}
	}
}

void CStockGraph::DrawKLine(CDC * pDC )
{
	DECLARE_COLOR_DEFINATION

	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);

	pDC->FillSolidRect( &m_rectKLine, clrBK );
	pDC->Draw3dRect( &m_rectKLine, clrBorder, clrBorder );

	// Draw Title
	CString	strTitle;
	pDC->SetTextColor( clrTitle );
	pDC->SetBkColor( clrBK );
	strTitle	=	AfxGetKTypeString( m_nCurKType );
	pDC->TextOut( m_rectAll.left+8, m_rectAll.top+2, strTitle );
	strTitle = "K  線";
	pDC->TextOut( m_rectKLine.left+1, m_rectAll.top+2, strTitle );

	double	dMin = 0, dMax = 0;
	if( ! GetKLineMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax ) )
		return;
	m_dMaxPrice			=	dMax;
	m_dMinPrice			=	dMin;

	// Draw Axis
	DrawAxis( pDC, m_rectKLine, m_nHeightSubtitle, 3, dMin, dMax, TRUE, TRUE, 2 );

	// KLine Attribute Rect
	CRect	rectKLineAttrib = m_rectKLineCenter;
	rectKLineAttrib.top -= m_nHeightSubtitle;

	int k;

	// Draw STT_DJ and STT_CW
	CSPDWordArray	&	anTech	=	AfxGetProfile().GetGraphTechsKLine( );
	for( k=0; k<anTech.GetSize(); k++ )
		if( STT_DJ == anTech[k] || STT_CW == anTech[k] )
			DrawKLineAttribute( pDC, anTech[k], rectKLineAttrib, FALSE, dMin, dMax );

	// Draw K Line
	for(  k=m_nIndexStart; k<=m_nIndexEnd; k++ )
	{
		DrawOneKLine( pDC, k, k, &kdata, dMin, dMax, FALSE );
	}

	// Draw Tech KLine except STT_DJ and STT_CW
	for(  k=0; k<anTech.GetSize(); k++ )
		if( STT_DJ != anTech[k] && STT_CW != anTech[k] )
			DrawKLineAttribute( pDC, anTech[k], rectKLineAttrib, FALSE, dMin, dMax );
	if( anTech.GetSize() > 0 )
		DrawKLineAttribute( pDC, anTech[0], rectKLineAttrib, TRUE, dMin, dMax );

	// Draw Select Line
	DrawSelectionLine( pDC, TRUE );
}

BOOL CStockGraph::GetKLineMinMaxInfo( int nStart, int nEnd, double * pdMin, double * pdMax )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	CKLine	kline( &kdata );
	double	dMin = 0, dMax = 0, dMinTemp = 0, dMaxTemp = 0;
	if( nStart < 0 || nEnd < 0 || ! kline.GetMinMaxInfo( nStart, nEnd, &dMin, &dMax ) )
		return FALSE;

	CSPDWordArray	&	anTech	=	AfxGetProfile().GetGraphTechsKLine( );
	for( int k=0; k<anTech.GetSize(); k++ )
	{
		UINT	nTech	=	anTech[k];
		switch( nTech )
		{
		case STT_MA:
			{
				CMA	ma( &kdata ); 
				if( ma.GetMinMaxInfo( nStart, nEnd, &dMinTemp, &dMaxTemp ) )
				{
					if( dMinTemp < dMin )	dMin	=	dMinTemp;
					if( dMaxTemp > dMax )	dMax	=	dMaxTemp;
				}
			}
			break;
		case STT_BBI:
			{
				CBBI	bbi( &kdata ); 
				if( bbi.GetMinMaxInfo( nStart, nEnd, &dMinTemp, &dMaxTemp ) )
				{
					if( dMinTemp < dMin )	dMin	=	dMinTemp;
					if( dMaxTemp > dMax )	dMax	=	dMaxTemp;
				}
			}
			break;
		case STT_BOLL:
			{
				CBOLL	boll( &kdata ); 
				if( boll.GetMinMaxInfo( nStart, nEnd, &dMinTemp, &dMaxTemp ) )
				{
					if( dMinTemp < dMin )	dMin	=	dMinTemp;
					if( dMaxTemp > dMax )	dMax	=	dMaxTemp;
				}
			}
			break;
		case STT_PV:
			{
				CPV	pv( &kdata ); 
				if( pv.GetMinMaxInfo( nStart, nEnd, &dMinTemp, &dMaxTemp ) )
				{
					if( dMinTemp < dMin )	dMin	=	dMinTemp;
					if( dMaxTemp > dMax )	dMax	=	dMaxTemp;
				}
			}
			break;
		case STT_SAR:
			{
				CSAR	sar( &kdata ); 
				if( sar.GetMinMaxInfo( nStart, nEnd, &dMinTemp, &dMaxTemp ) )
				{
					if( dMinTemp < dMin )	dMin	=	dMinTemp;
					if( dMaxTemp > dMax )	dMax	=	dMaxTemp;
				}
			}
			break;
		case STT_DJ:
		case STT_CW:
			break;
		default:;
			ASSERT( FALSE );
		}
	}
	
	if( pdMin )
		*pdMin	=	dMin;
	if( pdMax )
		*pdMax	=	dMax;
	return TRUE;
}

void CStockGraph::DrawOneKLine(CDC * pDC, int nIndexPos, int nIndexKD, CKData * pKData, double dMin, double dMax, BOOL bGreyed )
{
	DECLARE_COLOR_DEFINATION

	// Check Valid
	ASSERT( pDC && nIndexPos >= m_nIndexStart && nIndexPos <= m_nIndexEnd && nIndexPos >= 0 );
	if( !(pDC && nIndexPos >= m_nIndexStart && nIndexPos <= m_nIndexEnd && nIndexPos >= 0) )
		return;
	if( !pKData || nIndexKD < 0 || nIndexKD >= pKData->GetSize() )
		return;
	if( dMax-dMin < 1e-4 )
		return;

	// Get Region
	CRect	rectK, rcEntity;
	long	xMedium	=	0;
	if( !GetOneKLineRect( nIndexPos, &rectK, &rcEntity.left, &rcEntity.right, &xMedium ) )
		return;

	int	xStart	=	rectK.left;
	int	xEnd	=	rectK.right;
	ASSERT( xEnd <= m_rectKLineCenter.right );
	if( xEnd > m_rectKLineCenter.right )
		return;

	KDATA	kd	=	pKData->ElementAt(nIndexKD);

	// Set rcEntity's top and bottom, set yLow, yHigh
	int	yLow	=	int( m_rectKLineCenter.bottom - m_rectKLineCenter.Height() * (kd.m_fLow - dMin) / (dMax-dMin) );
	int	yHigh	=	int( m_rectKLineCenter.bottom - m_rectKLineCenter.Height() * (kd.m_fHigh - dMin) / (dMax-dMin) );
	int	yOpen	=	int( m_rectKLineCenter.bottom - m_rectKLineCenter.Height() * (kd.m_fOpen - dMin) / (dMax-dMin) );
	int	yClose	=	int( m_rectKLineCenter.bottom - m_rectKLineCenter.Height() * (kd.m_fClose - dMin) / (dMax-dMin) );
	rcEntity.top	=	min( yOpen, yClose );
	rcEntity.bottom	=	max( yOpen, yClose ) + 1;

	if( CStockGraph::klineCandle == m_nCurKLineMode )
	{
		// Draw Entity
		COLORREF	clr	=	clrRise;
		if( kd.m_fClose < kd.m_fOpen )
			clr	=	clrFallEntity;
		if( kd.m_date > m_dwLatestDate )
			clr	=	clrNewKLine;
		if( bGreyed )
			clr	=	clrDJ;
		pDC->SetBkColor( clrBK );
		if( kd.m_fClose < kd.m_fOpen )
			pDC->FillSolidRect( &rcEntity, clr );
		else
			pDC->Draw3dRect( &rcEntity, clr, clr );
		
		// Draw Line
		CPen	pen( PS_SOLID, 1, clr );
		CPen *pOldPen = pDC->SelectObject( &pen );
		pDC->MoveTo( xMedium, yHigh );
		pDC->LineTo( xMedium, rcEntity.top );
		pDC->MoveTo( xMedium, rcEntity.bottom );
		pDC->LineTo( xMedium, yLow );

		pDC->SelectObject( pOldPen );
	}
	else if( CStockGraph::klineAmerica == m_nCurKLineMode )
	{
		// Draw Entity
		COLORREF	clr	=	clrRise;
		if( kd.m_date > m_dwLatestDate )
			clr	=	clrNewKLine;
		if( bGreyed )
			clr	=	clrDJ;
		pDC->SetBkColor( clrBK );
		
		// Draw Line
		CPen	pen( PS_SOLID, 1, clr );
		CPen *pOldPen = pDC->SelectObject( &pen );
		pDC->MoveTo( xStart, yHigh );
		pDC->LineTo( xStart, yLow );
		pDC->MoveTo( xStart, yClose );
		pDC->LineTo( xEnd, yClose );

		pDC->SelectObject( pOldPen );
	}
	else if( CStockGraph::klineTower == m_nCurKLineMode )
	{
		/*
		在起步股價和當日收盤價之間畫線,股價上漲時,畫紅色空心實體,股價下跌時,畫綠色實心實體。
		若前一交易日是上漲紅線,而次日下跌,股價未跌破前一天紅線低點的那一部分跌幅仍畫紅線,跌破部分畫綠線。
		若前一交易日為下跌綠線,而次日上漲,股價未漲過前一天綠線低點的那一部分漲幅仍畫綠色實體,漲過部分才畫紅線。
		*/
		// Draw Entity
		COLORREF	clr	=	clrRise;
		if( kd.m_fClose < kd.m_fOpen )
			clr	=	clrFallEntity;
		if( kd.m_date > m_dwLatestDate )
			clr	=	clrNewKLine;
		if( bGreyed )
			clr	=	clrDJ;
		pDC->SetBkColor( clrBK );
		if( kd.m_fClose < kd.m_fOpen )
			pDC->FillSolidRect( &rcEntity, clr );
		else
			pDC->Draw3dRect( &rcEntity, clr, clr );

		if( nIndexKD > 0 )
		{
			KDATA	kdLast	=	pKData->ElementAt(nIndexKD-1);
			int	yOpenLast	=	int( m_rectKLineCenter.bottom - m_rectKLineCenter.Height() * (kdLast.m_fOpen - dMin) / (dMax-dMin) );
			int	yCloseLast	=	int( m_rectKLineCenter.bottom - m_rectKLineCenter.Height() * (kdLast.m_fClose - dMin) / (dMax-dMin) );
			if( kdLast.m_fClose > kdLast.m_fOpen && kd.m_fClose < kd.m_fOpen )
			{
				rcEntity.bottom	=	min(yOpenLast,rcEntity.bottom);
				if( rcEntity.bottom > rcEntity.top )
				{
					pDC->FillSolidRect( &rcEntity, clrBK );
					clr	=	clrRise;
					if( kd.m_date > m_dwLatestDate )
						clr	=	clrNewKLine;
					if( bGreyed )
						clr	=	clrDJ;
					pDC->Draw3dRect( &rcEntity, clr, clr );
				}
			}
			else if( kdLast.m_fClose < kdLast.m_fOpen && kd.m_fClose > kd.m_fOpen )
			{
				rcEntity.top	=	max(yOpenLast,rcEntity.top);
				if( rcEntity.bottom > rcEntity.top )
				{
					clr	=	clrFallEntity;
					if( kd.m_date > m_dwLatestDate )
						clr	=	clrNewKLine;
					if( bGreyed )
						clr	=	clrDJ;
					pDC->FillSolidRect( &rcEntity, clr );
				}
			}
		}
	}
}

void CStockGraph::DrawBorderMovingLine( CDC * pDC, CPoint point, BOOL bAddOrRemove )
{
	ASSERT( m_pParent && ::IsWindow( m_pParent->GetSafeHwnd() ) );
	if( !m_pParent || !::IsWindow(m_pParent->GetSafeHwnd()) )
		return;

	CClientDC	dc(m_pParent);
	if( NULL == pDC )
		pDC		=	&dc;

	CPen	penLine( PS_SOLID, 1, AfxGetProfile().GetColor( CColorClass::clrBorder ) );
	CPen * pOldPen = pDC->SelectObject( &penLine );
	int nOldDrawMode = pDC->SetROP2( R2_XORPEN );

	pDC->MoveTo( m_rectKLine.left-5, point.y );
	pDC->LineTo( m_rectKLine.right+5, point.y );

	pDC->SetROP2( nOldDrawMode );
	pDC->SelectObject( pOldPen );
}

void CStockGraph::DrawSelectionLine( CDC * pDC, BOOL bAddOrRemove )
{
	ASSERT( m_pParent && ::IsWindow( m_pParent->GetSafeHwnd() ) );
	if( !m_pParent || !::IsWindow(m_pParent->GetSafeHwnd()) )
		return;

	CClientDC	dc(m_pParent);
	if( NULL == pDC )
		pDC		=	&dc;

	CPen	penVLine( PS_SOLID, 1, AfxGetProfile().GetColor( CColorClass::clrLine1 ) );
	CPen * pOldPen = pDC->SelectObject( &penVLine );
	int nOldDrawMode = pDC->SetROP2( R2_XORPEN );

	CRect	rectK;
	long	xMedium = 0;
	if( GetOneKLineRect( m_nIndexCurrent, &rectK, NULL, NULL, &xMedium ) )
	{
		pDC->MoveTo( xMedium, m_rectCenter.bottom );
		pDC->LineTo( xMedium, m_rectKLineCenter.top );
	}

	for( int k=0; k<m_anIndexCurrent.GetSize(); k++ )
	{
		if( ((int)m_anIndexCurrent[k]) == m_nIndexCurrent )
			continue;
		if( GetOneKLineRect( m_anIndexCurrent[k], &rectK, NULL, NULL, &xMedium ) )
		{
			pDC->MoveTo( xMedium, m_rectKLineCenter.bottom );
			pDC->LineTo( xMedium, m_rectKLineCenter.top );
		}
	}

	pDC->SetROP2( nOldDrawMode );
	pDC->SelectObject( pOldPen );
}

void CStockGraph::DrawSelectionRect( CDC * pDC, CPoint ptBegin, CPoint ptEnd, BOOL bAddOrRemove )
{
	ASSERT( m_pParent && ::IsWindow( m_pParent->GetSafeHwnd() ) );
	if( !m_pParent || !::IsWindow(m_pParent->GetSafeHwnd()) )
		return;

	CClientDC	dc(m_pParent);
	if( NULL == pDC )
		pDC		=	&dc;

	CPen	penVLine( PS_SOLID, 1, AfxGetProfile().GetColor( CColorClass::clrLine2 ) );
	CPen * pOldPen = pDC->SelectObject( &penVLine );
	int nOldDrawMode = pDC->SetROP2( R2_XORPEN );

	CRect	rect;
	rect.left	=	min(ptBegin.x,ptEnd.x);
	rect.right	=	max(ptBegin.x,ptEnd.x);
	rect.top	=	min(ptBegin.y,ptEnd.y);
	rect.bottom	=	max(ptBegin.y,ptEnd.y);

	pDC->MoveTo( rect.left, rect.top );
	pDC->LineTo( rect.right, rect.top );
	pDC->LineTo( rect.right, rect.bottom );
	pDC->LineTo( rect.left, rect.bottom );
	pDC->LineTo( rect.left, rect.top );

	pDC->SetROP2( nOldDrawMode );
	pDC->SelectObject( pOldPen );
}

void CStockGraph::DrawKData( )
{
	if( !::IsWindow( m_wndKData.GetSafeHwnd() ) )
	{
		if( !m_wndKData.Create( NULL, "", WS_CHILD, m_rectKData, m_pParent, 0 ) )
		{
			TRACE( "Failed to create m_wndKData!\n" );
			return;
		}
		m_wndKData.SetWindowPos( NULL, m_rectKData.left, m_rectKData.top, m_rectKData.Width(), m_rectKData.Height(),
								SWP_SHOWWINDOW );
	}

	CClientDC	dc(&m_wndKData);
	CRect		rectClient;
	m_wndKData.GetClientRect( &rectClient );

	CKData	&kdata	=	m_CurStock.GetKData(m_nCurKType);
	if( m_nIndexCurrent >= 0 && m_nIndexCurrent < kdata.GetSize() )
	{
		m_wndKData.SetWindowPos( NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW );
		m_wndKData.ValidateRect( &rectClient );
		DrawKData( &dc, rectClient );
		m_wndKData.ValidateRect( &rectClient );
	}
	else
		m_wndKData.SetWindowPos( NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_HIDEWINDOW );
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情综合网天天干| 亚洲国产成人av网| 国模冰冰炮一区二区| 91精品国产欧美一区二区| 三级久久三级久久久| 6080日韩午夜伦伦午夜伦| 亚洲大尺度视频在线观看| 欧美亚男人的天堂| 日韩中文字幕一区二区三区| 91麻豆精品国产91久久久| 久久狠狠亚洲综合| 国产精品区一区二区三| 色噜噜夜夜夜综合网| 日韩电影在线免费看| 精品国产91乱码一区二区三区| 国产成人精品免费网站| 欧美精彩视频一区二区三区| 成人av电影观看| 一区二区三区日本| 欧美一区二区三区小说| 国产黄色精品网站| 一卡二卡欧美日韩| 欧美zozo另类异族| 91网站在线播放| 三级成人在线视频| 国产精品欧美一区喷水| 欧美日韩视频在线第一区 | 2017欧美狠狠色| 不卡av电影在线播放| 亚洲一区二区中文在线| 日韩欧美国产综合一区| 成人免费视频国产在线观看| 亚洲欧美电影一区二区| 日韩一区二区免费在线观看| 国产一区二区三区久久久| 亚洲精品高清在线观看| 精品国产一区二区三区四区四| 99视频精品免费视频| 日韩国产高清在线| 综合久久综合久久| 久久久久久久久99精品| 精品视频1区2区| 不卡一卡二卡三乱码免费网站| 丝袜诱惑制服诱惑色一区在线观看| 久久亚洲精华国产精华液| 欧美影视一区二区三区| voyeur盗摄精品| 精品亚洲国产成人av制服丝袜| 一区二区三区在线播放| 国产欧美一区二区在线| 欧美一区日韩一区| 欧美综合一区二区三区| 成人美女在线视频| 麻豆91免费观看| 亚洲一区二区三区激情| 国产网红主播福利一区二区| 欧美一区午夜精品| 欧美日韩亚州综合| 欧美性生交片4| www.日韩在线| 成人av网站免费| 国产精品一区二区黑丝| 狠狠色丁香婷综合久久| 六月丁香综合在线视频| 天天色 色综合| 亚洲成人动漫在线免费观看| 亚洲欧美在线视频观看| 国产精品麻豆网站| 中文字幕国产一区二区| 精品久久久久av影院| 日韩一区二区精品葵司在线 | 在线观看国产精品网站| 91网站黄www| 91免费观看国产| 色综合咪咪久久| 色老汉一区二区三区| av在线不卡电影| 99久久久久免费精品国产| 高清视频一区二区| 成人免费av资源| 不卡的电影网站| 成人福利在线看| www.亚洲免费av| 一本久久综合亚洲鲁鲁五月天 | 一区二区三区欧美| 亚洲六月丁香色婷婷综合久久| 国产精品国模大尺度视频| 国产欧美日韩精品a在线观看| 久久久另类综合| 国产精品视频线看| 亚洲色图19p| 亚洲午夜激情网站| 日韩在线一区二区三区| 日本成人中文字幕| 国产一区二区精品久久| 国产一区二区调教| 成a人片国产精品| 一本一本大道香蕉久在线精品 | 久久99久久99| 国产精品一区二区久激情瑜伽| 国产成人精品免费网站| 91蜜桃传媒精品久久久一区二区| 在线观看亚洲精品| 884aa四虎影成人精品一区| 精品国产成人系列| 中文字幕一区二区三区在线观看 | 激情文学综合插| 成人性生交大合| 在线观看精品一区| 久久亚区不卡日本| 亚洲制服丝袜av| 国产在线乱码一区二区三区| 国产成人av电影免费在线观看| 色综合久久88色综合天天免费| 91麻豆精品国产无毒不卡在线观看| 精品伦理精品一区| 日韩伦理免费电影| 久久aⅴ国产欧美74aaa| 91片在线免费观看| 精品国产sm最大网站| 亚洲欧美经典视频| 精品一区二区三区免费视频| 91丨porny丨户外露出| 欧美一区二区日韩一区二区| 欧美极品美女视频| 日本欧美一区二区三区| 9色porny自拍视频一区二区| 91精品国产黑色紧身裤美女| 国产精品亲子乱子伦xxxx裸| 香蕉影视欧美成人| 成人激情免费视频| 欧美一级艳片视频免费观看| 国产精品久久久久久久久晋中| 无吗不卡中文字幕| 成人av在线网| 精品久久一区二区| 亚洲国产成人tv| 99久久久无码国产精品| 久久久三级国产网站| 日韩中文欧美在线| 91福利在线播放| 中文字幕亚洲在| 国产一区二区三区观看| 欧美日韩国产综合视频在线观看 | 精品久久国产字幕高潮| 一区二区三区在线观看视频| 高清不卡在线观看av| 日韩欧美电影在线| 丝袜亚洲精品中文字幕一区| 91蝌蚪国产九色| 国产精品乱子久久久久| 国内精品久久久久影院薰衣草| 欧美日韩精品一区二区| 亚洲欧美日韩一区| 成人av中文字幕| 国产精品美女久久久久久久| 国产一区二区中文字幕| 精品捆绑美女sm三区| 蜜臀久久久99精品久久久久久| 欧美日韩一区二区三区四区| 亚洲日本成人在线观看| 成人av先锋影音| 国产精品日韩精品欧美在线| 国产伦精品一区二区三区免费 | 日韩高清在线电影| 欧美吻胸吃奶大尺度电影| 亚洲视频免费看| 一本大道久久精品懂色aⅴ| 亚洲色图制服丝袜| 91免费视频网址| 夜夜嗨av一区二区三区四季av| 91浏览器在线视频| 一区二区三区在线视频免费| 色综合久久综合网97色综合| 综合亚洲深深色噜噜狠狠网站| fc2成人免费人成在线观看播放| 久久久精品中文字幕麻豆发布| 狠狠色狠狠色综合| 国产三级久久久| av成人动漫在线观看| 亚洲日本乱码在线观看| 欧美熟乱第一页| 日韩av中文在线观看| 日韩欧美一级二级| 国产乱码精品一区二区三| 欧美激情一区二区三区在线| 成人午夜又粗又硬又大| 伊人性伊人情综合网| 精品视频一区二区三区免费| 日韩av中文在线观看| 久久人人97超碰com| 国产成人精品一区二| 亚洲人精品午夜| 欧美日韩在线播| 精品在线播放午夜| 中文字幕一区二区三区在线不卡 | 不卡影院免费观看| 亚洲一区二区三区国产| 欧美一二三在线| 成人av网址在线|