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

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

?? panelmeter.cpp

?? 工控軟件圖形界面-控件實現(xiàn) 利用雙緩沖技術編寫圓盤儀表
?? CPP
字號:
/***********************************************************************
* Copyright (c) 2007* All rights reserved.* 
* ATTRIBUTE:        一個儀表控件類,用來仿真工業(yè)控制現(xiàn)場儀表數(shù)據(jù)顯示等
* FILE NAME:		PanelMeter.cpp
* FILE ID:			SYSTEMCTRL-PANELMETER-CPP
* ABSTRACT:			可用于工業(yè)控制仿真儀表數(shù)據(jù)顯示等
* CURRENT VERSION:	V1.0
* AUTHOR:			戚高
* CONTECT:			successq_g@163.com	
* BUILD DATA:		27/12/2007
* COMPLETION DATE:	27/12/2007
* PRE-VERSION:		NONE
* PRE-AUTHOR:		NONE
* PRE-COMPLETION DATE:	
* NOTE:	            未經(jīng)授權請不要作為商業(yè)用途,或者如果您要作為商業(yè)
                    用途,請聯(lián)系作者
***********************************************************************/
#include "stdafx.h"
#include "PanelMeter.h"
#include <math.h>
#include "MemDC.h"

CPanelMeter::CPanelMeter()
{
	m_BackColor = RGB( 33, 177, 138);
	m_dMinValue = 0; 
	m_dMaxValue = 100; 
	m_dInterval = 20; 
	m_dValidValueMin = 30; 
	m_dValidValueMax = 75; 
	m_dCurrentValue = 55.00f;

	memset(m_strUnits, 0, sizeof(m_strUnits));
	strcpy(m_strUnits, "溫度");			//表單位
}

CPanelMeter::~CPanelMeter()
{
}


BEGIN_MESSAGE_MAP(CPanelMeter, CStatic)
//{{AFX_MSG_MAP(CPanelMeter)
ON_WM_PAINT()
ON_WM_ERASEBKGND()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPanelMeter message handlers

void CPanelMeter::PreSubclassWindow() 
{
	CStatic::PreSubclassWindow();

	SendMessage(WM_SIZE);

	CRect rect;
	GetClientRect(&rect);
	ClientToScreen(&rect);
	rect.bottom = rect.top + rect.Height() / 2 + 4; 
	MoveWindow(&rect, TRUE);
}

void CPanelMeter::SetCurrentValue(const double dCurrentValue)
{ 
	m_dCurrentValue = dCurrentValue;
	Invalidate(); 
}

void CPanelMeter::SetValidValue(const double dMin, const double dMax)
{
	m_dValidValueMin = dMin;   
	m_dValidValueMax = dMax; 

	ReconstructControl(); 
}

void CPanelMeter::SetRange(const double dMin, const double dMax, const double dInterval)
{ 
	m_dMinValue = dMin; 
	m_dMaxValue = dMax; 
	m_dInterval = dInterval; 
	
	ReconstructControl(); 
}

void CPanelMeter::SetUnits(const char *strUnits)
{
	strcpy(m_strUnits, strUnits);
 
	ReconstructControl();
}

//重新更新背景
void CPanelMeter::ReconstructControl()
{
	if (m_pbitmapOldMeterPlate &&
		m_bitmapMeterPlate.GetSafeHandle() && 
		m_dcMeterPlate.GetSafeHdc())
	{
		m_dcMeterPlate.SelectObject(m_pbitmapOldMeterPlate);
		m_dcMeterPlate.DeleteDC() ;
		m_bitmapMeterPlate.DeleteObject();
	}
	
	Invalidate ();
}

void CPanelMeter::OnPaint() 
{
	CPaintDC dc(this); 

	// 獲得控件區(qū)域
	GetClientRect (&m_rectCtrl);

	CMemDC memDC(&dc, &m_rectCtrl);

	//繪制儀表盤
	if (m_dcMeterPlate.GetSafeHdc() == NULL || (m_bitmapMeterPlate.m_hObject == NULL))
	{
		m_dcMeterPlate.CreateCompatibleDC(&dc);
		m_bitmapMeterPlate.CreateCompatibleBitmap(&dc, m_rectCtrl.Width(), 																					m_rectCtrl.Height()) ;
		m_pbitmapOldMeterPlate = m_dcMeterPlate.SelectObject(&m_bitmapMeterPlate) ;
		DrawMeterBackground(&m_dcMeterPlate, m_rectCtrl);

	}
	memDC.BitBlt(0, 0, m_rectCtrl.Width(), m_rectCtrl.Height(), 
			           &m_dcMeterPlate, 0, 0, SRCCOPY);

	DrawValue(&memDC, m_rectCtrl);
	DrawNeedle(&memDC, m_rectCtrl);	
}

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

//繪制儀表背景
void CPanelMeter::DrawMeterBackground(CDC *pDC, CRect &rect)
{
	CBrush m_brushBack, pBackBrush, *pOldBrush;

	pDC->SetBkColor(m_BackColor);
	m_brushBack.CreateSolidBrush(m_BackColor);
	pOldBrush = (CBrush *)pDC->SelectObject(&m_brushBack);	
	pDC->FillRect(rect, &m_brushBack);   //繪制背景
	pDC->Rectangle(rect);                //繪制一個邊框
	pDC->SelectObject(pOldBrush);
	m_brushBack.DeleteObject();

	int yHalf = rect.bottom - 8; 
	float fa = (float)rect.Width() / 2; 
	float fb = (float)rect.Height() - 8; 
	
	CFont fScaleFont; 
	fScaleFont.CreateFont(10, 12,   
		0,   
		0,   
		FW_NORMAL, 
		FALSE, 
		FALSE, 
		FALSE, 
		DEFAULT_CHARSET, 
		OUT_DEFAULT_PRECIS, 
		CLIP_DEFAULT_PRECIS, 
		DEFAULT_QUALITY, 
		DEFAULT_PITCH | FF_DONTCARE, 
		"Arial");   
	
	if (m_dValidValueMin >= 0)  
	{ 
		CBrush brshGreen; 
		CBrush brshRed; 
		brshGreen.CreateSolidBrush(RGB(0, 192, 0)); 
		brshRed.CreateSolidBrush(RGB(230, 100, 100)); 
		
		float fStartAngle = (float)(m_dValidValueMin - m_dMinValue) / (float)(m_dMaxValue - m_dMinValue) * 3.14f; 
		float fEndAngle   = (float)(m_dValidValueMax - m_dMinValue) / (float)(m_dMaxValue - m_dMinValue) * 3.14f; 
		
		pDC->MoveTo(rect.left, yHalf); 
		pDC->LineTo(rect.left + 20, yHalf); 
		pDC->MoveTo(rect.right - 1, yHalf); 
		pDC->LineTo(rect.right - 22, yHalf); 
		
		pDC->MoveTo(rect.left, yHalf); 
		for (float f = 0; f <= 3.14; f += 0.01f) 
		{
			pDC->LineTo(rect.Width() / 2 - (int)(fa * cos(f)) + rect.left, yHalf - (int)(fb * sin(f)) + rect.top); 
		}
		pDC->MoveTo(rect.left + 20, yHalf); 
		for (f = 0; f <= 3.14; f += 0.01f)
		{
			pDC->LineTo(rect.Width() / 2 - (int)((fa - 20) * cos(f)) + rect.left, yHalf - (int)((fb - 20) * sin(f)) + rect.top); 
		}

		CBrush *pOldBrush = pDC->SelectObject(&brshRed); 
		pDC->FloodFill(rect.left + 10, yHalf - 10, RGB(0, 0, 0)); 
		
		fStartAngle *= 100; 
		fStartAngle = (float)((int)fStartAngle) / 100; 
		fEndAngle *= 100; 
		fEndAngle = (float)((int)fEndAngle) / 100; 
		
		pDC->MoveTo(rect.Width() / 2 - (int)(fa * cos(fStartAngle)) + rect.left, yHalf - (int)(fb * sin(fStartAngle)) + rect.top); 
		pDC->LineTo(rect.Width() / 2 - (int)((fa - 20) * cos(fStartAngle)) + rect.left, yHalf - (int)((fb - 20) * sin(fStartAngle)) + rect.top); 
		
		pDC->MoveTo(rect.Width() / 2 - (int)(fa * cos(fEndAngle)) + rect.left, yHalf - (int)(fb * sin(fEndAngle)) + rect.top); 
		pDC->LineTo(rect.Width() / 2 - (int)((fa - 20) * cos(fEndAngle)) + rect.left, yHalf - (int)((fb - 20) * sin(fEndAngle)) + rect.top); 
		
		pDC->SelectObject(brshGreen); 
		if (fStartAngle > 0 && fEndAngle < 3.14) 
		{
			pDC->FloodFill(rect.Width() / 2 - (int)((fa - 5) * cos((fStartAngle + fEndAngle) / 2)) + rect.left, yHalf - (int)((fb - 5) * sin((fStartAngle + fEndAngle) / 2)) + rect.top, RGB(0,0,0)); 
		}

		pDC->SelectObject(pOldBrush);
	} 

	CPen pen; 
	pen.CreatePen(PS_SOLID, 3, RGB(255,255,255)); 
	CPen *pOldPen = pDC->SelectObject(&pen); 
	CFont *pOldFont = pDC->SelectObject(&fScaleFont); 
	pDC->SetBkMode(TRANSPARENT); 
	
	fa -= 10; 
	fb -= 10; 
	pDC->MoveTo(rect.left + 10, yHalf); 
	for (float f = 0; f <= 3.14; f += 0.01f) 
	{ 
		pDC->LineTo(rect.Width() / 2 - (int)(fa * cos(f)) + rect.left, yHalf - (int)(fb * sin(f)) + rect.top); 
	} 
	
	float fBigStep = 3.14f / ((float)(m_dMaxValue - m_dMinValue) / (float)m_dInterval) / 4; 
	int nDiv = 0; 
	int nScale = (int)m_dMinValue; 
	for (f = 0; f <= 3.15; f += fBigStep) 
	{ 
		pDC->MoveTo(rect.Width() / 2 - (int)(fa * cos(f)) + rect.left, yHalf - (int)(fb * sin(f)) + rect.top); 
		if (nDiv == 0) 
		{ 
			pDC->LineTo(rect.Width() / 2 - (int)((fa - 15) * cos(f)) + rect.left, yHalf - (int)((fb - 15) * sin(f)) + rect.top); 
			CString str; 
			str.Format("%d", nScale); 
			nScale += (int)m_dInterval; 
			CSize size = pDC->GetOutputTextExtent(str); 
			pDC->SetTextColor(RGB(0,0,0)); 
			pDC->TextOut(rect.Width() / 2 - (int)((fa - 33) * cos(f)) + rect.left - size.cx / 2 + 1, yHalf - (int)((fb - 33) * sin(f)) + rect.top - size.cy / 2 + 1, str); 
			pDC->SetTextColor(RGB(255, 255, 255)); 
			pDC->TextOut(rect.Width() / 2 - (int)((fa - 33) * cos(f)) + rect.left - size.cx / 2, yHalf - (int)((fb - 33) * sin(f)) + rect.top - size.cy / 2, str); 
			nDiv++; 
		} 
		else 
		{ 
			pDC->LineTo(rect.Width() / 2 - (int)((fa - 10) * cos(f)) + rect.left, yHalf - (int)((fb - 10) * sin(f)) + rect.top); 
			nDiv++; 
			if (nDiv == 4) 
			{
				nDiv = 0; 
			}
		} 		
	} 	
	pDC->SelectObject(pOldFont); 
	fScaleFont.DeleteObject();

	CPoint m_ptMeterCenter;
	m_ptMeterCenter.x = rect.left + rect.Width() / 2;
	m_ptMeterCenter.y = rect.bottom;
	int nRadiusFrame = rect.Height();
	CFont pUnitFont;
	LOGFONT lf;
	lf.lfEscapement = 0;
	lf.lfItalic = NULL;
	lf.lfUnderline = NULL;
	lf.lfStrikeOut = NULL;
	lf.lfCharSet = DEFAULT_CHARSET;
	lf.lfHeight = nRadiusFrame / 4;
	strcpy(lf.lfFaceName, "隸書");
	pUnitFont.CreateFontIndirect(&lf);
	pOldFont = (CFont *)pDC->SelectObject(&pUnitFont);	
	pDC->SetBkMode(TRANSPARENT);
	pDC->SetTextColor(RGB(0, 0, 0));
	CRect rectUnits(int(m_ptMeterCenter.x - nRadiusFrame * 0.30f + 2),
			        int(m_ptMeterCenter.y - nRadiusFrame * 0.70f + 2),
					int(m_ptMeterCenter.x + nRadiusFrame * 0.30f + 2),
					int(m_ptMeterCenter.y - nRadiusFrame * 0.20f + 2));
	pDC->DrawText(m_strUnits, &rectUnits, DT_CENTER | DT_SINGLELINE | DT_VCENTER);
	pDC->SetTextColor(RGB( 255, 255, 255));
	rectUnits.SetRect(int(m_ptMeterCenter.x - nRadiusFrame * 0.30f),
			          int(m_ptMeterCenter.y - nRadiusFrame * 0.70f),
					  int(m_ptMeterCenter.x + nRadiusFrame * 0.30f),
					  int(m_ptMeterCenter.y - nRadiusFrame * 0.20f));
	pDC->DrawText(m_strUnits, rectUnits, DT_CENTER | DT_SINGLELINE | DT_VCENTER);
	
	pDC->SelectObject(pOldPen); 
	pDC->SelectObject(pOldFont); 
	pUnitFont.DeleteObject();
}

void CPanelMeter::DrawNeedle(CDC *pDC, CRect &rect)
{
	if (m_dCurrentValue > m_dMaxValue) 
	{ 
		m_dCurrentValue = m_dMaxValue; 
	} 
	else if (m_dCurrentValue < m_dMinValue) 
	{ 
		m_dCurrentValue = m_dMinValue; 
	}   
  
	double dAngle = (m_dCurrentValue - m_dMinValue) / (m_dMaxValue - m_dMinValue) * 3.14f; 
  
	float fa = (float)rect.Width() / 2; 
	float fb = (float)rect.Height() - 8; 

	CBrush brshWhite; 
	CBrush brshShadow; 
	brshWhite.CreateSolidBrush(RGB(255, 255, 255)); 
	brshShadow.CreateSolidBrush(RGB(0, 0, 0)); 
  
	CBrush *pOldBrush = pDC->SelectObject(&brshShadow); 
	pDC->Ellipse(rect.Width() / 2 - 9 + rect.left, rect.Height() - 20 + rect.top, rect.Width() / 2 + 11 + rect.left, rect.Height() + rect.top); 
	pDC->SelectObject(&brshWhite); 
	pDC->Ellipse(rect.Width() / 2 - 10 + rect.left, rect.Height() - 21 + rect.top, rect.Width() / 2 + 10 + rect.left, rect.Height() - 1 + rect.top); 
	pDC->SelectObject(pOldBrush); 
  
	CPen penThick; 
	CPen penThin; 
	CPen penShadow; 
  
	penThick.CreatePen(PS_SOLID, 5, RGB(255, 100, 50)); 
	penThin.CreatePen(PS_SOLID, 1, RGB(255, 255, 255)); 
	penShadow.CreatePen(PS_SOLID, 5, RGB(0, 0, 0)); 
  
	CPen *pOldPen = pDC->SelectObject(&penShadow); 
	pDC->MoveTo(rect.Width() / 2 - (int)((fa - 8) * cos(dAngle)) + rect.left + 1, rect.Height() - 11 - (int)((fb - 8) * sin(dAngle)) + rect.top + 1); 
	pDC->LineTo(rect.Width() / 2 + rect.left + 1, rect.Height() - 11 + rect.top + 1); 
	pDC->SelectObject(&penThick); 
	pDC->MoveTo(rect.Width() / 2 - (int)((fa - 8) * cos(dAngle)) + rect.left, rect.Height() - 11 - (int)((fb - 8) * sin(dAngle)) + rect.top); 
	pDC->LineTo(rect.Width() / 2 + rect.left, rect.Height() - 11 + rect.top); 
	pDC->SelectObject(&penThin); 
	pDC->MoveTo(rect.Width() / 2 - (int)((fa - 8) * cos(dAngle)) + rect.left, rect.Height() - 11 - (int)((fb - 8) * sin(dAngle)) + rect.top); 
	pDC->LineTo(rect.Width() / 2 + rect.left, rect.Height() - 11 + rect.top); 
	pDC->SelectObject(pOldPen); 
}

void CPanelMeter::DrawValue(CDC *pDC, CRect &rect)
{
	char strCurrentValue[10];
	memset(strCurrentValue, 0, sizeof(strCurrentValue));

	sprintf(strCurrentValue, "%.2f", m_dCurrentValue);

	CPoint m_ptMeterCenter;
	m_ptMeterCenter.x = rect.left + rect.Width() / 2;
	m_ptMeterCenter.y = rect.bottom;
	int nRadiusFrame = rect.Height();
	CFont pUnitFont, *pOldFont;
	LOGFONT lf;
	lf.lfEscapement = 0;
	lf.lfItalic = NULL;
	lf.lfUnderline = NULL;
	lf.lfStrikeOut = NULL;
	lf.lfCharSet = DEFAULT_CHARSET;
	lf.lfHeight = nRadiusFrame / 6;
	strcpy(lf.lfFaceName, "Arial");
	pUnitFont.CreateFontIndirect(&lf);
	pOldFont = (CFont *)pDC->SelectObject(&pUnitFont);	
	pDC->SetBkMode(TRANSPARENT);
	pDC->SetTextColor(RGB(0, 0, 0));
	CRect rectUnits(int(m_ptMeterCenter.x - nRadiusFrame * 0.30f + 2),
			        int(m_ptMeterCenter.y - nRadiusFrame * 0.40f + 2),
					int(m_ptMeterCenter.x + nRadiusFrame * 0.30f + 2),
					int(m_ptMeterCenter.y - nRadiusFrame * 0.10f + 2));
	pDC->DrawText(strCurrentValue, &rectUnits, DT_CENTER | DT_SINGLELINE | DT_VCENTER);
	pDC->SetTextColor(RGB( 255, 255, 255));
	rectUnits.SetRect(int(m_ptMeterCenter.x - nRadiusFrame * 0.30f),
			          int(m_ptMeterCenter.y - nRadiusFrame * 0.40f),
					  int(m_ptMeterCenter.x + nRadiusFrame * 0.30f),
					  int(m_ptMeterCenter.y - nRadiusFrame * 0.10f));
	pDC->DrawText(strCurrentValue, rectUnits, DT_CENTER | DT_SINGLELINE | DT_VCENTER);
	
	pDC->SelectObject(pOldFont);
	pUnitFont.DeleteObject();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产蜜臀97一区二区三区| 欧美电影一区二区| 国产精品妹子av| jvid福利写真一区二区三区| 中文字幕精品一区二区三区精品| 国产v日产∨综合v精品视频| 国产精品每日更新在线播放网址 | 一本色道久久综合亚洲精品按摩| 亚洲欧美一区二区三区久本道91| 欧美撒尿777hd撒尿| 美国十次综合导航| 国产精品网站在线| 在线观看国产精品网站| 美女视频一区二区三区| 亚洲国产精品v| 在线观看日韩精品| 麻豆成人久久精品二区三区小说| 久久久99精品免费观看| 色视频一区二区| 久久99久久99| 亚洲另类色综合网站| 欧美一区二区观看视频| 成人午夜在线免费| 五月婷婷激情综合网| 国产欧美日韩在线观看| 欧美三级欧美一级| 国产黄色精品网站| 亚洲成av人片www| 久久久国产午夜精品| 欧美日韩视频在线观看一区二区三区 | 99精品一区二区三区| 天堂成人免费av电影一区| 国产亚洲综合在线| 欧美久久免费观看| av在线播放一区二区三区| 日韩高清不卡在线| 亚洲人成7777| 久久婷婷色综合| 欧美精品一级二级三级| 成人免费观看视频| 韩国精品免费视频| 亚洲第一久久影院| 中文字幕一区二区三中文字幕| 日韩一级在线观看| 在线视频综合导航| 成人夜色视频网站在线观看| 丝袜美腿亚洲色图| 一级精品视频在线观看宜春院| 久久精品视频网| 日韩一区二区在线观看视频| 在线观看亚洲成人| 99国产一区二区三精品乱码| 精品一区二区三区免费观看| 亚洲国产va精品久久久不卡综合| 国产精品美女视频| 久久久久久97三级| 久久色中文字幕| 欧美一区二区网站| 欧美精三区欧美精三区| 欧美优质美女网站| 色狠狠色噜噜噜综合网| 99久久夜色精品国产网站| 国产精品资源在线观看| 久久成人麻豆午夜电影| 人人狠狠综合久久亚洲| 天堂成人国产精品一区| 亚洲第一搞黄网站| 午夜欧美视频在线观看| 午夜伊人狠狠久久| 亚洲1区2区3区视频| 亚洲成人av电影| 亚洲电影视频在线| 亚洲成av人片www| 午夜国产精品一区| 日韩成人精品在线| 日本欧美在线观看| 青青青伊人色综合久久| 奇米影视一区二区三区小说| 日韩精品一二三四| 麻豆免费看一区二区三区| 免费在线观看一区| 国产综合久久久久久久久久久久| 国产真实乱子伦精品视频| 激情五月激情综合网| 国产精品亚洲成人| 成人美女在线观看| 欧美xxxxx裸体时装秀| 精品免费国产二区三区| 国产视频在线观看一区二区三区| 国产人成一区二区三区影院| 国产精品视频第一区| 亚洲女人的天堂| 天使萌一区二区三区免费观看| 日韩精品一区第一页| 精品一区二区av| 懂色av中文一区二区三区| 91在线视频播放| 国产午夜精品久久久久久久| 国产日韩综合av| 亚洲图片你懂的| 亚洲一区二区偷拍精品| 奇米色一区二区三区四区| 国产综合久久久久久久久久久久| 成人h精品动漫一区二区三区| 一本色道综合亚洲| 日韩精品一区在线观看| 中文字幕一区二区三| 午夜国产精品一区| 粉嫩一区二区三区性色av| 欧美主播一区二区三区| 欧美videossexotv100| 国产精品热久久久久夜色精品三区| 一区二区三区四区亚洲| 青青草成人在线观看| 成人精品小蝌蚪| 欧美日韩高清在线播放| 国产精品视频看| 青草国产精品久久久久久| 国产91高潮流白浆在线麻豆| 欧美午夜精品久久久久久超碰| 久久亚洲私人国产精品va媚药| 成人欧美一区二区三区视频网页| 蜜臀av一区二区三区| 99热在这里有精品免费| 日韩一区二区电影在线| 亚洲免费三区一区二区| 国产美女精品人人做人人爽| 欧美三级在线视频| 中文字幕第一区| 青青草伊人久久| 在线视频国产一区| 国产午夜精品久久久久久免费视 | 蜜臂av日日欢夜夜爽一区| 成人免费毛片app| 欧美tickle裸体挠脚心vk| 亚洲午夜视频在线| 91伊人久久大香线蕉| 久久久久久久电影| 日韩福利视频导航| 欧美亚洲综合一区| 国产精品久久久爽爽爽麻豆色哟哟 | 精品国产三级a在线观看| 一区二区三区四区乱视频| 国产在线播放一区二区三区| 3d动漫精品啪啪一区二区竹菊| 亚洲欧美另类小说视频| 成人午夜av电影| 久久久久久久久久久久久久久99| 日韩在线一区二区| 欧美中文字幕不卡| 国产精品免费av| 成人激情开心网| 亚洲六月丁香色婷婷综合久久| 国产精品中文字幕日韩精品 | 日本韩国一区二区三区视频| 精品国产三级a在线观看| 日本欧美大码aⅴ在线播放| 欧美人与性动xxxx| 亚洲国产一区二区三区青草影视| 91福利国产成人精品照片| 亚洲精品综合在线| 91麻豆免费在线观看| 综合网在线视频| 不卡电影免费在线播放一区| 中文字幕精品三区| gogogo免费视频观看亚洲一| 中文字幕国产一区| 99精品国产一区二区三区不卡| 国产精品初高中害羞小美女文| 97久久人人超碰| 亚洲综合一二三区| 精品视频一区三区九区| 亚洲成av人片一区二区| 在线播放/欧美激情| 日韩成人精品在线| 日韩欧美一区二区在线视频| 麻豆精品视频在线观看免费| 久久这里都是精品| 国产成人午夜99999| 欧美激情一区二区三区在线| 99精品热视频| 亚洲在线视频网站| 91精品国产色综合久久ai换脸| 日韩成人伦理电影在线观看| 精品国产一区二区亚洲人成毛片| 国产精品自拍网站| 亚洲日本青草视频在线怡红院| 欧美色视频在线| 美女免费视频一区| 国产婷婷色一区二区三区| 91麻豆免费观看| 日本亚洲一区二区| 久久久综合精品| 一本一本久久a久久精品综合麻豆| 午夜精品福利一区二区三区蜜桃| 日韩欧美电影在线| 成人免费高清在线| 视频在线在亚洲| 中文字幕国产一区| 欧美四级电影网|