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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? realtimeview.cpp

?? 股票軟件
?? CPP
字號(hào):
// RealTimeView.cpp : implementation of the CRealTimeView class
//

#include "stdafx.h"
#include "RealTimeView.h"

#include "memDC.h"

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

/////////////////////////////////////////////////////////////////////////////
// CRealTimeView

#define	RTV_TIMER_REFRESHBIGTRADE	1
#define	RTV_TIMER_REFRESH			2

#define	IDC_REALTIMEVIEW_REPORTTAB	200

#define	RT_REPORTTAB_QUOTE		0	// 筆
#define	RT_REPORTTAB_PRICE		1	// 價(jià)
#define	RT_REPORTTAB_MINUTE		2	// 分
#define	RT_REPORTTAB_BUYSELLEX	3	// 盤(pán)
#define	RT_REPORTTAB_VALUE		4	// 值
#define	RT_REPORTTAB_DISTRIBUTE	5	// 籌
#define	RT_REPORTTAB_BIGTRADE	6	// 單


IMPLEMENT_DYNCREATE(CRealTimeView, CView)

BEGIN_MESSAGE_MAP(CRealTimeView, CView)
	//{{AFX_MSG_MAP(CRealTimeView)
	ON_WM_CREATE()
	ON_WM_DESTROY()
	ON_WM_TIMER()
	ON_WM_ERASEBKGND()
// 	ON_COMMAND(ID_REALTIME_PREV, OnRealtimePrev)
// 	ON_COMMAND(ID_REALTIME_NEXT, OnRealtimeNext)
// 	ON_COMMAND(ID_REALTIME_LEFT, OnRealtimeLeft)
// 	ON_COMMAND(ID_REALTIME_RIGHT, OnRealtimeRight)
// 	ON_COMMAND(ID_REALTIME_HOME, OnRealtimeHome)
// 	ON_COMMAND(ID_REALTIME_END, OnRealtimeEnd)
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
//	ON_MESSAGE(WM_USER_COLORCHANGE, OnColorChange)
	ON_MESSAGE(WM_APP_STKRECEIVER_DATA, OnStkReceiverData)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRealTimeView construction/destruction

CRealTimeView::CRealTimeView()
{
	m_nMultiStockCount	=	1;

	ASSERT(RTV_MAX_MULTICOUNT > 0);
}

CRealTimeView::~CRealTimeView()
{
}

void CRealTimeView::ShowMultiStock(int nMultiStockCount)
{
	ASSERT(1 == nMultiStockCount || 2 == nMultiStockCount
			|| 4 == nMultiStockCount || 6 == nMultiStockCount
			|| 9 == nMultiStockCount);
	if(1 != nMultiStockCount && 2 != nMultiStockCount
			&& 4 != nMultiStockCount && 6 != nMultiStockCount
			&& 9 != nMultiStockCount)
		return;
	if(nMultiStockCount == m_nMultiStockCount)
		return;

	m_nMultiStockCount	=	nMultiStockCount;

	int	nDrawMode	=	m_realtime[0].GetDrawMode();
	int	nTechLine	=	m_realtime[0].GetDrawTechLine();
	int	nReportWhat	=	m_realtime[0].GetReportWhat();
	if(1 == m_nMultiStockCount)
	{
		for(int i = 0; i < RTV_MAX_MULTICOUNT; i++)
			m_realtime[i].SetDrawMode(nDrawMode, nTechLine, CRealTime::reportQuote);
		//m_wndReportTab.SetCurtab(RT_REPORTTAB_QUOTE);
	}
	else
	{
		for(int i = 0; i < RTV_MAX_MULTICOUNT; i++)
			m_realtime[i].SetDrawMode(CRealTime::modePriceLine, CRealTime::techNone, CRealTime::reportNone);
	}

	OnUpdate();
}

void CRealTimeView::ChangeDrawMode(int nDrawMode)
{
	int nTechLine	=	m_realtime[0].GetDrawTechLine();
	int	nReportWhat	=	m_realtime[0].GetReportWhat();
	for(int i = 0; i < m_nMultiStockCount && i < RTV_MAX_MULTICOUNT; i++)
		m_realtime[i].SetDrawMode(nDrawMode, nTechLine, nReportWhat);

	//if(::IsWindow(m_wndReportTab.GetSafeHwnd()))
	//{
	//	if(1 == m_nMultiStockCount && CRealTime::modePriceLine == nDrawMode)
	//		m_wndReportTab.SetWindowPos(NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
	//	else
	//		m_wndReportTab.SetWindowPos(NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_HIDEWINDOW);
	//}

	Invalidate();
}

void CRealTimeView::ToggleDrawTechLine(int nTechLine)
{
	int	nOld	=	m_realtime[0].GetDrawTechLine();
	int nNew	=	(nTechLine == nOld ? CRealTime::techNone : nTechLine);
	int	nDrawMode	=	m_realtime[0].GetDrawMode();
	int	nReportWhat	=	m_realtime[0].GetReportWhat();
	for(int i = 0; i < m_nMultiStockCount && i < RTV_MAX_MULTICOUNT; i++)
		m_realtime[i].SetDrawMode(nDrawMode, nNew, /*nReportWhat*/nNew);

	Invalidate();
}

void CRealTimeView::SendRequestQuote(BOOL bForced)
{
	BOOL bInTrade = CSPTime::InTradeTime(CSPTime::GetCurrentTime().GetTime(),900);
	if(bForced || bInTrade)
	{
		for(int i = 0; i < m_nMultiStockCount && i < RTV_MAX_MULTICOUNT; i++)
		{
			CStock & stock = m_realtime[i].GetCurStock();
			CStockInfo & info = stock.GetStockInfo();
			if(info.IsValidStock())
				AfxGetStkReceiver().RequestStockData(CStock::dataReport, &info, 1, 0, 0);
		}
	}
}

BOOL CRealTimeView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

void CRealTimeView::OnInitialUpdate() 
{
	CView::OnInitialUpdate();
	
	// TODO: Add your specialized code here and/or call the base class
	OnUpdate();
}

void CRealTimeView::OnUpdate() 
{
	// TODO: Add your specialized code here and/or call the base class
	if(!IsWindowVisible())
		return;
	SetFocus();

	ASSERT(RTV_MAX_MULTICOUNT > 0);

	CStockInfo	info;
	if(AfxGetProfile().GetCurrentStock(&info))
	{
		m_realtime[0].SetCurStock(info);
		m_realtime[0].PrepareStockData();
	}
	else
	{
		m_realtime[0].SetCurStock(STKLIB_CODE_MAIN);
		m_realtime[0].PrepareStockData();
		AfxGetProfile().SetCurrentStock(STKLIB_CODE_MAIN);
	}
	if(CRealTime::modeReportDetail == m_realtime[0].GetDrawMode())
		AfxGetStkReceiver().RequestStockData(CStock::dataDetail, &info, 1, 0, 0);
	else
		AfxGetStkReceiver().RequestStockData(CStock::dataMinute, &info, 1, 0, 0);

	int i=0;
	// 多股同列
	for( i=1; i < m_nMultiStockCount && i < RTV_MAX_MULTICOUNT; i++)
	{
		if(AfxGetProfile().GetNextStock(&info))
		{
			m_realtime[i].SetCurStock(info);
			m_realtime[i].PrepareStockData();
			if(CRealTime::modeReportDetail == m_realtime[0].GetDrawMode())
				AfxGetStkReceiver().RequestStockData(CStock::dataDetail, &info, 1, 0, 0);
			else
				AfxGetStkReceiver().RequestStockData(CStock::dataMinute, &info, 1, 0, 0);
		}
	}
	for( i=1; i < m_nMultiStockCount && i < RTV_MAX_MULTICOUNT; i++)
		AfxGetProfile().GetPrevStock(&info);

	Invalidate();

	SendRequestQuote(TRUE);
}

/////////////////////////////////////////////////////////////////////////////
// CRealTimeView drawing

void CRealTimeView::OnDraw(CDC* pDC)
{
	CView::OnDraw(pDC);
}

void CRealTimeView::RedrawAll(CDC * pDC, CRect rectClient)
{		
	int	i	=	0;
	CRect	rect[RTV_MAX_MULTICOUNT];
	for(i = 0; i < RTV_MAX_MULTICOUNT; i++)
		rect[i]	=	rectClient;
	switch(m_nMultiStockCount)
	{
	case 2:
		rect[0].bottom	=	rect[1].top	=	rectClient.top + rectClient.Height()/2;
		for(i = 0; i < m_nMultiStockCount; i++)
			m_realtime[i].Redraw(pDC, rect[i]);
		break;
	case 4:
		rect[0].bottom	=	rect[2].bottom	=	rect[1].top		=	rect[3].top		=	rectClient.top + rectClient.Height()/2;
		rect[0].right	=	rect[1].right	=	rect[2].left	=	rect[3].left	=	rectClient.left + rectClient.Width()/2;
		for(i = 0; i < m_nMultiStockCount; i++)
			m_realtime[i].Redraw(pDC, rect[i]);
		break;
	case 6:
		rect[0].bottom	=	rect[3].bottom	=	rect[1].top		=	rect[4].top		=	rectClient.top + rectClient.Height()/3;
		rect[1].bottom	=	rect[4].bottom	=	rect[2].top		=	rect[5].top		=	rectClient.top + 2*rectClient.Height()/3;
		rect[0].right	=	rect[1].right	=	rect[2].right	=	rect[3].left	=	rect[4].left	=	rect[5].left	=	rectClient.left + rectClient.Width()/2;
		for(i = 0; i < m_nMultiStockCount; i++)
			m_realtime[i].Redraw(pDC, rect[i]);
		break;
	case 9:
		rect[0].bottom	=	rect[3].bottom	=	rect[6].bottom	=	rect[1].top		=	rect[4].top		=	rect[7].top		=	rectClient.top + rectClient.Height()/3;
		rect[1].bottom	=	rect[4].bottom	=	rect[7].bottom	=	rect[2].top		=	rect[5].top		=	rect[8].top		=	rectClient.top + 2*rectClient.Height()/3;
		rect[0].right	=	rect[1].right	=	rect[2].right	=	rect[3].left	=	rect[4].left	=	rect[5].left	=	rectClient.left + rectClient.Width()/3;
		rect[3].right	=	rect[4].right	=	rect[5].right	=	rect[6].left	=	rect[7].left	=	rect[8].left	=	rectClient.left + 2*rectClient.Width()/3;
		for(i = 0; i < m_nMultiStockCount; i++)
			m_realtime[i].Redraw(pDC, rect[i]);
		break;
	default:
		m_realtime[0].Redraw(pDC, rectClient);	// 單股
	}
}

/////////////////////////////////////////////////////////////////////////////
// CRealTimeView printing

BOOL CRealTimeView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CRealTimeView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
	// TODO: add extra initialization before printing
	CView::OnBeginPrinting(pDC, pInfo);
}

void CRealTimeView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)
{
	// TODO: add cleanup after printing
	CView::OnEndPrinting(pDC, pInfo);
}

void CRealTimeView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
	// TODO: add customized printing code here
	pDC->SetMapMode(MM_ISOTROPIC);
	CRect	rectClient(0, 0, 1020, 586);
	// GetClientRect(&rectClient);
	pDC->SetWindowOrg(rectClient.left, rectClient.top);
	pDC->SetWindowExt(rectClient.Width(), rectClient.Height());
	pDC->SetViewportOrg(pInfo->m_rectDraw.left, pInfo->m_rectDraw.top);
	pDC->SetViewportExt(pInfo->m_rectDraw.Width(), pInfo->m_rectDraw.Height());
	
	RedrawAll(pDC, rectClient);
	// CView::OnPrint(pDC,pInfo);
}

/////////////////////////////////////////////////////////////////////////////
// CRealTimeView message handlers

int CRealTimeView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;

	// m_realtime
	for(int i = 0; i < RTV_MAX_MULTICOUNT; i++)
		m_realtime[i].SetParent(this);

	// 實(shí)時(shí)行情刷新
	AfxGetStkReceiver().AddRcvDataWnd(GetSafeHwnd());

	// 大單成交刷新
	SetTimer(RTV_TIMER_REFRESHBIGTRADE, 30000, NULL);
	SetTimer(RTV_TIMER_REFRESH, 30000, NULL);

	return 0;
}

void CRealTimeView::OnDestroy() 
{
	// 停止行情刷新通知消息
	AfxGetStkReceiver().RemoveRcvDataWnd(GetSafeHwnd());
	KillTimer(RTV_TIMER_REFRESHBIGTRADE);
	KillTimer(RTV_TIMER_REFRESH);

	CView::OnDestroy();
}

void CRealTimeView::OnTimer(UINT nIDEvent) 
{
	if(RTV_TIMER_REFRESHBIGTRADE == nIDEvent)
	{
		int	nDrawMode	=	m_realtime[0].GetDrawMode();
		int	nReportWhat	=	m_realtime[0].GetReportWhat();

		if(CRealTime::modeBigTradeDetail == nDrawMode)
			Invalidate();
		else if(CRealTime::modePriceLine == nDrawMode
			&& CRealTime::reportBigTrade == nReportWhat)
			m_realtime[0].DrawReportRegion(NULL);
	}
	if(RTV_TIMER_REFRESH == nIDEvent)
	{
		SendRequestQuote(FALSE);
	}

	CView::OnTimer(nIDEvent);
}

void CRealTimeView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) 
{
	// TODO: Add your specialized code here and/or call the base class
	if(bActivate)	OnUpdate();

	CView::OnActivateView(bActivate, pActivateView, pDeactiveView);
}

BOOL CRealTimeView::OnEraseBkgnd(CDC* pDC) 
{
	return TRUE;
}

LRESULT CRealTimeView::OnColorChange(WPARAM wParam, LPARAM lParam)
{
	Invalidate();

	return 0L;
}

LRESULT CRealTimeView::OnStkReceiverData(WPARAM wParam, LPARAM lParam)
{
	for(int i = 0; i < m_nMultiStockCount && i < RTV_MAX_MULTICOUNT; i++)
		m_realtime[i].OnStkReceiverData(wParam,lParam);
	return 0;
}

void CRealTimeView::OnRealtimePrev() 
{
	if(CRealTime::modePriceLine == m_realtime[0].GetDrawMode())
	{
		CStockInfo	info;
		for(int i = 0; i < m_nMultiStockCount && i < RTV_MAX_MULTICOUNT; i++)
			AfxGetProfile().GetPrevStock(&info);
		OnUpdate();
	}
	for(int i = 0; i < m_nMultiStockCount && i < RTV_MAX_MULTICOUNT; i++)
		m_realtime[i].PageUp();
}

void CRealTimeView::OnRealtimeNext() 
{
	if(CRealTime::modePriceLine == m_realtime[0].GetDrawMode())
	{
		CStockInfo	info;
		for(int i = 0; i < m_nMultiStockCount && i < RTV_MAX_MULTICOUNT; i++)
			AfxGetProfile().GetNextStock(&info);
		OnUpdate();
	}
	for(int i = 0; i < m_nMultiStockCount && i < RTV_MAX_MULTICOUNT; i++)
		m_realtime[i].PageDown();
}

void CRealTimeView::OnRealtimeLeft() 
{
	for(int i = 0; i < m_nMultiStockCount && i < RTV_MAX_MULTICOUNT; i++)
		m_realtime[i].MoveLeft();
}

void CRealTimeView::OnRealtimeRight() 
{
	for(int i = 0; i < m_nMultiStockCount && i < RTV_MAX_MULTICOUNT; i++)
		m_realtime[i].MoveRight();
}

void CRealTimeView::OnRealtimeUp() 
{
	for(int i = 0; i < m_nMultiStockCount && i < RTV_MAX_MULTICOUNT; i++)
		m_realtime[i].MoveUp();
}

void CRealTimeView::OnRealtimeDown() 
{
	for(int i = 0; i < m_nMultiStockCount && i < RTV_MAX_MULTICOUNT; i++)
		m_realtime[i].MoveDown();
}

void CRealTimeView::OnRealtimeHome() 
{
	for(int i = 0; i < m_nMultiStockCount && i < RTV_MAX_MULTICOUNT; i++)
		m_realtime[i].MoveHome();
}

void CRealTimeView::OnRealtimeEnd() 
{
	for(int i = 0; i < m_nMultiStockCount && i < RTV_MAX_MULTICOUNT; i++)
		m_realtime[i].MoveEnd();
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美腿丝袜一区二区三区| 国产精品影视在线观看| 欧美狂野另类xxxxoooo| 亚洲视频一区二区在线| 成人av电影免费观看| 国产精品每日更新在线播放网址| 国产精品亚洲视频| 中文字幕精品在线不卡| 成人教育av在线| 1024成人网色www| 91麻豆免费看片| 一区二区三区不卡在线观看| 欧美在线影院一区二区| 亚洲成av人片观看| 欧美日韩精品电影| 日韩国产在线观看一区| 日韩一区二区三区高清免费看看| 日韩一区精品视频| 欧美成人乱码一区二区三区| 国产在线一区二区综合免费视频| 久久蜜桃av一区二区天堂 | 亚洲一区二区三区四区不卡| 色婷婷亚洲一区二区三区| 亚洲最新在线观看| 8x福利精品第一导航| 麻豆精品久久久| 久久精品一区二区三区av| 大白屁股一区二区视频| 亚洲特黄一级片| 欧美色倩网站大全免费| 免费高清在线视频一区·| 精品一区二区三区日韩| 久久久综合视频| 99久久精品99国产精品| 亚洲狠狠爱一区二区三区| 日韩一区二区在线观看视频| 国产精品综合一区二区| 1024亚洲合集| 欧美精品丝袜中出| 国产一区二区主播在线| 国产精品日日摸夜夜摸av| 色国产精品一区在线观看| 日本不卡一区二区| 国产情人综合久久777777| 色综合天天综合色综合av| 日韩中文字幕区一区有砖一区 | 色欧美日韩亚洲| 日韩av不卡在线观看| 国产日韩欧美激情| 欧美亚洲自拍偷拍| 精品午夜久久福利影院| 成人欧美一区二区三区| 欧美精品第1页| 国产成人av电影| 亚洲午夜av在线| 日韩欧美高清dvd碟片| 成人av手机在线观看| 亚洲成精国产精品女| 精品久久久久久无| 色菇凉天天综合网| 国产综合久久久久久久久久久久| 亚洲欧美乱综合| 精品卡一卡二卡三卡四在线| 91麻豆国产福利精品| 老司机一区二区| 亚洲男人的天堂av| 久久综合精品国产一区二区三区 | 色综合视频一区二区三区高清| 日韩成人dvd| 亚洲免费在线视频一区 二区| 欧美一卡在线观看| 91视视频在线直接观看在线看网页在线看| 亚洲成av人影院在线观看网| 中文字幕第一区二区| 欧美一区二区二区| 色哟哟一区二区三区| 国产在线精品一区二区不卡了| 一区二区三区在线观看欧美| 久久免费国产精品| 在线播放视频一区| 97久久精品人人做人人爽50路| 久久成人免费网| 亚洲一区二区三区四区五区中文 | 国产欧美日韩亚州综合| 欧美电影一区二区| 色婷婷综合久久久中文一区二区| 韩日av一区二区| 天天爽夜夜爽夜夜爽精品视频| 中文字幕精品在线不卡| 精品日韩99亚洲| 91.com在线观看| 欧美亚洲综合一区| 99视频在线精品| 国产精品主播直播| 久久精品999| 天堂精品中文字幕在线| 亚洲精品乱码久久久久| 国产精品日韩精品欧美在线| 久久综合久色欧美综合狠狠| 91精品国产色综合久久不卡电影| 在线精品视频一区二区三四| 99久免费精品视频在线观看| 国产一区二区三区香蕉| 黄色精品一二区| 蜜桃久久精品一区二区| 亚洲大片一区二区三区| 亚洲久本草在线中文字幕| 亚洲国产成人一区二区三区| 久久精品亚洲乱码伦伦中文| 日韩精品一区二区三区在线 | 日韩欧美一区电影| 欧美视频在线一区二区三区| 色欧美片视频在线观看在线视频| 成人小视频在线| 国产91丝袜在线播放0| 国产精品一区免费视频| 激情深爱一区二区| 老色鬼精品视频在线观看播放| 丝袜美腿亚洲综合| 亚洲成人免费看| 偷偷要91色婷婷| 天天综合色天天| 日本视频免费一区| 免费美女久久99| 蓝色福利精品导航| 激情深爱一区二区| 国产一区三区三区| 国产精品亚洲一区二区三区在线 | 亚洲伦理在线精品| 亚洲欧美日韩成人高清在线一区| 综合色中文字幕| 亚洲免费在线视频一区 二区| 亚洲另类色综合网站| 亚洲一区二区在线免费观看视频 | 一区在线播放视频| 亚洲免费资源在线播放| 亚洲综合图片区| 五月婷婷欧美视频| 秋霞午夜av一区二区三区| 蓝色福利精品导航| 国产最新精品精品你懂的| 国产91精品久久久久久久网曝门| 成人精品亚洲人成在线| 91影视在线播放| 欧美伊人精品成人久久综合97| 欧美三级电影在线看| 91精品国产麻豆国产自产在线| 精品免费国产一区二区三区四区| 久久久久久久久蜜桃| 中文字幕不卡一区| 亚洲精品乱码久久久久久黑人| 亚洲国产精品欧美一二99| 日本伊人色综合网| 国产一区二区免费在线| 国产成人av电影免费在线观看| 99国产精品国产精品久久| 欧美中文字幕不卡| 日韩视频免费观看高清完整版在线观看| 欧美成人高清电影在线| 欧美国产精品劲爆| 一区二区三区国产豹纹内裤在线 | 亚洲一区国产视频| 奇米影视一区二区三区小说| 国产精品乡下勾搭老头1| 91麻豆6部合集magnet| 欧美日韩国产大片| 欧美精品一区二区高清在线观看| 国产精品欧美一级免费| 一区二区三区成人| 久久国产精品免费| av网站一区二区三区| 777午夜精品免费视频| 久久久精品2019中文字幕之3| 亚洲欧美国产高清| 另类专区欧美蜜桃臀第一页| 不卡电影一区二区三区| 欧美美女激情18p| 国产欧美一区二区三区鸳鸯浴| 亚洲免费av观看| 久久99精品网久久| 99久久国产综合精品女不卡| 欧美一区日韩一区| 亚洲欧美在线视频观看| 日日摸夜夜添夜夜添精品视频 | 555www色欧美视频| 国产亚洲欧洲997久久综合| 亚洲综合一二三区| 国产精品综合久久| 欧美三级中文字| 国产欧美精品一区aⅴ影院 | 国产suv精品一区二区三区| 欧美亚洲另类激情小说| 久久久久九九视频| 香蕉av福利精品导航| 国产成人av福利| 欧美久久久久中文字幕| 中文字幕中文字幕一区| 蜜臀精品一区二区三区在线观看| 97久久人人超碰| 久久综合成人精品亚洲另类欧美|