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

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

?? fractalexview.cpp

?? 自己寫的一個分形程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// FractalExView.cpp : implementation of the CFractalExView class
//

#include "stdafx.h"
#include "FractalEx.h"

#include "FractalExView.h"
#include "IterationDialog.h"
#include "InfoDialog.h"
#include "JuliaDialog.h"
#include "PertDialog.h"

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

/////////////////////////////////////////////////////////////////////////////
// CFractalExView

IMPLEMENT_DYNCREATE(CFractalExView, CFormView)

BEGIN_MESSAGE_MAP(CFractalExView, CFormView)
	//{{AFX_MSG_MAP(CFractalExView)
	ON_WM_LBUTTONDOWN()
	ON_WM_LBUTTONUP()
	ON_WM_MOUSEMOVE()
	ON_WM_PAINT()
	ON_WM_RBUTTONDOWN()
	ON_WM_SIZE()
	ON_COMMAND(ID_EDIT_UNDO, OnEditUndo)
	ON_UPDATE_COMMAND_UI(ID_EDIT_UNDO, OnUpdateEditUndo)
	ON_COMMAND(ID_EDIT_REDO, OnEditRedo)
	ON_UPDATE_COMMAND_UI(ID_EDIT_REDO, OnUpdateEditRedo)
	ON_WM_DESTROY()
	ON_COMMAND(ID_ZOOM_IN, OnZoomIn)
	ON_COMMAND(ID_ZOOM_OUT, OnZoomOut)
	ON_UPDATE_COMMAND_UI(ID_ZOOM_IN, OnUpdateZoomIn)
	ON_COMMAND(ID_ZOOM_MOVE, OnZoomMove)
	ON_UPDATE_COMMAND_UI(ID_ZOOM_MOVE, OnUpdateZoomMove)
	ON_UPDATE_COMMAND_UI(ID_ZOOM_OUT, OnUpdateZoomOut)
	ON_WM_SETCURSOR()
	ON_COMMAND(ID_FILE_EXPORT, OnFileExport)
	ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
	ON_COMMAND(ID_ONIDLE, OnOnidle)
	ON_COMMAND(ID_FRACTAL_CUSTOM, OnFractalCustom)
	ON_UPDATE_COMMAND_UI(ID_FRACTAL_CUSTOM, OnUpdateFractalCustom)
	ON_COMMAND(ID_ZOOM_RESET, OnZoomReset)
	ON_COMMAND(ID_FRACTAL_OTHER, OnFractalOther)
	ON_UPDATE_COMMAND_UI(ID_FRACTAL_OTHER, OnUpdateFractalOther)
	ON_COMMAND(ID_SET_ITERATION, OnSetIteration)
	ON_COMMAND(ID_FRACTAL_VIEWINFO, OnFractalViewinfo)
	ON_UPDATE_COMMAND_UI(ID_FRACTAL_MODE_JULIA, OnUpdateFractalModeJulia)
	ON_UPDATE_COMMAND_UI(ID_FRACTAL_MODE_MAND, OnUpdateFractalModeMand)
	ON_UPDATE_COMMAND_UI(ID_FRACTAL_MODE_PERT, OnUpdateFractalModePert)
	ON_COMMAND(ID_FRACTAL_MODE_JULIA, OnFractalModeJulia)
	ON_COMMAND(ID_FRACTAL_MODE_MAND, OnFractalModeMand)
	ON_COMMAND(ID_FRACTAL_MODE_PERT, OnFractalModePert)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND_RANGE(ID_FRACTAL_FIRST, ID_FRACTAL_LAST, OnFractaltype)
	ON_UPDATE_COMMAND_UI_RANGE(ID_FRACTAL_FIRST, ID_FRACTAL_LAST, OnUpdateFractaltype)
	ON_COMMAND_RANGE(ID_COLOR_SET0, ID_COLOR_SET4, OnColorset)
	ON_UPDATE_COMMAND_UI_RANGE(ID_COLOR_SET0, ID_COLOR_SET4, OnUpdateColorset)
	ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
	ON_UPDATE_COMMAND_UI(ID_INDICATOR_COOR, OnUpdateCoorIndicator)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFractalExView construction/destruction
CFractalExView::CFractalExView()
	: CFormView(CFractalExView::IDD), ZoomOp(((CMainFrame*)AfxGetMainWnd())->ZoomOp)
{
	//{{AFX_DATA_INIT(CFractalExView)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// TODO: add construction code here
	onceinit=false;
	mousedown=false;
	widhei=1.0;
	nUndoRect=0;
	curUndoRect=0;
	nRedoRect=0;
	pixelinfo=NULL;
	status_coor="坐標";

	CMainFrame* frame=GetMainFrame();
	cur_zoom_in[0]=frame->cur_zoom_in[0];
	cur_zoom_in[ZO_MOVE]=frame->cur_zoom_in[ZO_MOVE];
	cur_zoom_in[ZO_IN]=frame->cur_zoom_in[ZO_IN];
	cur_zoom_in[ZO_OUT]=frame->cur_zoom_in[ZO_OUT];

	CalcFractal=NULL;
	GetFractalData=NULL;
	CalcFractalPoint=NULL;
	hlib=0;
	BuildLib="";
}

CFractalExView::~CFractalExView()
{
	LoadFractalLib();
}

void CFractalExView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFractalExView)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}

BOOL CFractalExView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
	return CFormView::PreCreateWindow(cs);
}

void CFractalExView::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	SetScrollSizes(MM_TEXT, CSize(0,0));

	UseColorSet(GetDocument()->colorset, false);
	UndoRect[0]=GetDocument()->myRect;
	onceinit=true;
	CreateMem();
	
	if(GetDocument()->fType==FRACTAL_CUSTOM)
	{
		BuildLib=BuildDll(GetDocument()->expression, GetDocument()->origin, "", false);
		if(BuildLib!="")
			LoadFractalLib(BuildLib);
	}
	else if(GetDocument()->fType==FRACTAL_NONE)
	{	
		if(otherfdlg.DoModal()==IDOK)
		{
			GetDocument()->ResetRect();
			LoadFractalLib(otherfdlg.SelectedLib);
			GetDocument()->fType=FRACTAL_OTHER;
		}
	}
}

/////////////////////////////////////////////////////////////////////////////
// CFractalExView printing

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

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

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

void CFractalExView::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
{
	// TODO: add customized printing code here
}

/////////////////////////////////////////////////////////////////////////////
// CFractalExView diagnostics

#ifdef _DEBUG
void CFractalExView::AssertValid() const
{
	CFormView::AssertValid();
}

void CFractalExView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

CFractalExDoc* CFractalExView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CFractalExDoc)));
	return (CFractalExDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CFractalExView message handlers

void CFractalExView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	CClientDC dc(this);
	switch(ZoomOp)
	{
	case ZO_MOVE:
		oldrect=CRect(0,0,wid2-1,hei2-1);
		dc.DrawFocusRect(&oldrect);
		oldpoint=point;
		mousedown=true;
		SetCapture();
		break;
	case ZO_IN:
		oldrect=CRect(0,0,0,0);
		oldpoint=point;
		mousedown=true;
		SetCapture();
		break;
	case ZO_OUT:
		ChangeRect(CRect(point.x-wid2, point.y-hei2, point.x+wid2, point.y+hei2)); 
		break;
	}
	
	CFormView::OnLButtonDown(nFlags, point);
}

void CFractalExView::OnLButtonUp(UINT nFlags, CPoint point) 
{
	switch(ZoomOp)
	{
	case ZO_MOVE:
		if(mousedown)
		{
			CClientDC dc(this);
			dc.DrawFocusRect(&oldrect);
			ReleaseCapture();
			mousedown=false;
			oldrect=CRect(-oldrect.left,-oldrect.top,(wid2-1)*2-oldrect.right,(hei2-1)*2-oldrect.bottom);
			if(nFlags==8)
			{
				NewFractal(CalcSelRect(oldrect));
			}
			else
			{
				ChangeRect(oldrect);
			}
		}
		break;
	case ZO_IN:
		if(mousedown)
		{
			CClientDC dc(this);
			dc.DrawFocusRect(&oldrect);
			ReleaseCapture();
			mousedown=false;

			if(abs(point.x-oldpoint.x)<5)
			{
				ChangeRect(CRect(point.x-wid2/4, point.y-hei2/4, point.x+wid2/4, point.y+hei2/4)); 
			}
			else
			{
				if(nFlags==8)
				{
					NewFractal(CalcSelRect(oldrect));
				}
				else
				{
					ChangeRect(oldrect);
				}
			}
		}
		break;
	case ZO_OUT:
		break;
	}
	
	CFormView::OnLButtonUp(nFlags, point);
}

void CFractalExView::OnMouseMove(UINT nFlags, CPoint point) 
{
	switch(ZoomOp)
	{
	case ZO_MOVE:
		if(mousedown)
		{
			CClientDC dc(this);
			int dx=point.x-oldpoint.x, dy=point.y-oldpoint.y;
			CRect rect=oldrect+CPoint(dx, dy);
			dc.DrawFocusRect(&oldrect);
			oldrect=rect;
			oldpoint=point;
			dc.DrawFocusRect(&rect);
		}
		break;
	case ZO_IN:
		if(mousedown)
		{
			CClientDC dc(this);
			CRect rect;
			if(oldpoint.x<point.x)
				if(oldpoint.y<=point.y)
					rect=CRect(oldpoint.x, oldpoint.y, point.x, (int)(oldpoint.y+(point.x-oldpoint.x)*widhei));
				else
					rect=CRect(oldpoint.x, (int)(oldpoint.y-(point.x-oldpoint.x)*widhei), point.x, oldpoint.y);
			else
				if(oldpoint.y<=point.y)
					rect=CRect(point.x, oldpoint.y, oldpoint.x, (int)(oldpoint.y-(point.x-oldpoint.x)*widhei));
				else
					rect=CRect(point.x, (int)(oldpoint.y+(point.x-oldpoint.x)*widhei), oldpoint.x, oldpoint.y);
			dc.DrawFocusRect(&oldrect);
			oldrect=rect;
			dc.DrawFocusRect(&rect);
		}
		break;
	case ZO_OUT:
		break;
	}

	if(!mousedown)
	{
		datatype a2, b2;
		a2 = point.x*scale + GetDocument()->myRect.left;
		b2 = point.y*scale + GetDocument()->myRect.top;
		PixelInfo *info=(pixelinfo+point.x+(hei2-point.y-1)*wid2);
		status_coor.Format("x=%g, y=%g, l=%d", a2, b2, info->lvl);
	}
	
	CFormView::OnMouseMove(nFlags, point);
}

void CFractalExView::OnRButtonDown(UINT nFlags, CPoint point) 
{
	if(mousedown)
	{
		CClientDC dc(this);
		dc.DrawFocusRect(&oldrect);
		ReleaseCapture();
		mousedown=false;
	}
	else if(ZoomOp== ZO_IN)
		ChangeRect(CRect(point.x-wid2, point.y-hei2, point.x+wid2, point.y+hei2)); 
	
	CFormView::OnRButtonDown(nFlags, point);
}

BOOL CFractalExView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
{
	if(ZoomOp>0)
	{
		SetCursor(cur_zoom_in[ZoomOp]);
		return TRUE;
	}
	else
		return CFormView::OnSetCursor(pWnd, nHitTest, message);
}

void CFractalExView::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	memdib.CopyDC(&dc, 0, 0);
}

void CFractalExView::OnSize(UINT nType, int cx, int cy) 
{
	CFormView::OnSize(nType, cx, cy);
	if(onceinit)
	{
		DeleteMem();
		CreateMem();
		DrawFractal();
	}	
}

void CFractalExView::CreateMem()
{
	CClientDC dc(this);
	CRect rect;
	GetClientRect(&rect);

	wid2=rect.Width();
	hei2=rect.Height();
	pixelinfo=new PixelInfo[wid2*hei2];

	memdib.Create(wid2, hei2);
}

void CFractalExView::DeleteMem()
{
	memdib.Destroy();

	delete[] pixelinfo;
}

void CFractalExView::OnEditUndo() 
{
	if(nUndoRect>0)
	{
		if(--curUndoRect<0)
			curUndoRect+=MAX_UNDO;
		GetDocument()->myRect=UndoRect[curUndoRect];
		nUndoRect--;
		nRedoRect++;
		DrawFractal();
	}
}

void CFractalExView::OnUpdateEditUndo(CCmdUI* pCmdUI) 
{
	if(nUndoRect==0)
		pCmdUI->Enable(false);
}

void CFractalExView::OnEditRedo() 
{
	if(nRedoRect>0)
	{
		if(++curUndoRect>=MAX_UNDO)
			curUndoRect-=MAX_UNDO;
		GetDocument()->myRect=UndoRect[curUndoRect];
		nUndoRect++;
		nRedoRect--;
		DrawFractal();
	}
}

void CFractalExView::OnUpdateEditRedo(CCmdUI* pCmdUI) 
{
	if(nRedoRect==0)
		pCmdUI->Enable(false);
}

void CFractalExView::OnDestroy() 
{
	DeleteMem();
	CFormView::OnDestroy();
}

void CFractalExView::AddUndo(CRectFloat &rc)
{
	if(++nUndoRect>MAX_UNDO-1)
		nUndoRect=MAX_UNDO-1;
	nRedoRect=0;
	if(++curUndoRect>=MAX_UNDO)
		curUndoRect=0;
	UndoRect[curUndoRect]=GetDocument()->myRect;
}

void CFractalExView::ChangeRect(CRect &SelRect)
{//以選中的屏幕坐標改變圖象Rect
	CClientDC dc(this);
	int maxi=2;
	CRect temp;
	CDC memdc;
	memdc.CreateCompatibleDC(&dc);
	CBitmap bm;
	bm.CreateCompatibleBitmap(&dc, wid2, hei2);
	CBitmap* oldbm=memdc.SelectObject(&bm);
	memdc.BitBlt(0, 0, wid2, hei2, &dc, 0, 0, SRCCOPY);
	for(int i=maxi-1;i>=0;i--)
	{
		temp=CRect(SelRect.left*i/maxi, SelRect.top*i/maxi, wid2-(wid2-SelRect.Width())*i/maxi, hei2-(hei2-SelRect.Height())*i/maxi);
		dc.StretchBlt(temp.left, temp.top, temp.right, temp.bottom, &memdc, SelRect.left, SelRect.top, SelRect.Width(), SelRect.Height(), SRCCOPY);
//		dc.DrawFocusRect(&temp);
	}

	memdc.SelectObject(oldbm);
	bm.DeleteObject();
	memdc.DeleteDC();
	
	CRectFloat rc=CalcSelRect(SelRect);
	GetDocument()->myRect=rc;
	AddUndo(rc);

	DrawFractal();
}

CRectFloat CFractalExView::CalcSelRect(CRect& selRect)
{//把鼠標選中的屏幕坐標轉為圖象坐標
	CRectFloat rc;
	rc.left=scale*selRect.left+GetDocument()->myRect.left;
	rc.top=scale*selRect.top+GetDocument()->myRect.top;
	rc.right=scale*selRect.right+GetDocument()->myRect.left;
	rc.bottom=scale*selRect.bottom+GetDocument()->myRect.top;
	return rc;
}

void CFractalExView::OnUpdateZoomIn(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(ZoomOp==ZO_IN);
}
void CFractalExView::OnUpdateZoomOut(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(ZoomOp==ZO_OUT);
}
void CFractalExView::OnUpdateZoomMove(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(ZoomOp==ZO_MOVE);
}
void CFractalExView::OnZoomIn() 
{
	if(ZoomOp==ZO_IN)
		ZoomOp=ZO_NONE;
	else
		ZoomOp=ZO_IN;
}
void CFractalExView::OnZoomOut() 
{
	if(ZoomOp==ZO_OUT)
		ZoomOp=ZO_NONE;
	else
		ZoomOp=ZO_OUT;
}
void CFractalExView::OnZoomMove() 
{
	if(ZoomOp==ZO_MOVE)
		ZoomOp=ZO_NONE;
	else
		ZoomOp=ZO_MOVE;
}

void CFractalExView::OnZoomReset() 
{
	GetDocument()->ResetRect();
	DrawFractal();
}

void CFractalExView::OnFileExport() 
{
	CString strFile, strFilter("24位位圖(*.bmp)|*.bmp||"); 
	CFileDialog fdlg(FALSE, ".bmp", NULL, OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY, strFilter); 
	if( fdlg.DoModal() == IDOK ) 
	{
		strFile = fdlg.GetPathName();
		SaveMemdc(strFile);
	} 
}

void CFractalExView::SaveMemdc(CString filename)//把圖象放入文件
{/***
	HBITMAP hbitmap=(HBITMAP)bm.GetSafeHandle();
	HDC hdc;
	int ibits; 
	WORD wbitcount; 
	DWORD dwpalettesize=0, dwbmbitssize, dwdibsize, dwwritten;
	BITMAP bitmap; 
	BITMAPFILEHEADER bmfhdr; 
	BITMAPINFOHEADER bi; 
	LPBITMAPINFOHEADER lpbi; 
	HANDLE fh, hdib, hpal,holdpal=NULL;
	hdc = memdc.GetSafeHdc();
	ibits = GetDeviceCaps(hdc, BITSPIXEL) * GetDeviceCaps(hdc, PLANES);
	DeleteDC(hdc);
	if (ibits <= 1)
		wbitcount = 1;
	else if (ibits <=4)
		wbitcount = 4;
	else if (ibits <= 8)
		wbitcount = 8;
	else if (ibits <= 24)
		wbitcount = 24;
	if (wbitcount <= 8)
	dwpalettesize = (1 << wbitcount) * sizeof(RGBQUAD);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丁香激情综合五月| 欧美成人国产一区二区| 一本久道中文字幕精品亚洲嫩| 国产**成人网毛片九色| 国产成人自拍网| 国产呦萝稀缺另类资源| 国产乱子伦一区二区三区国色天香 | 日韩一级完整毛片| 91精品国产入口在线| 欧美一级理论性理论a| 久久综合九色综合97_久久久| 欧美精品一区二区高清在线观看| 精品国产在天天线2019| 国产亚洲福利社区一区| 国产精品网站在线播放| 亚洲日本在线a| 亚洲成人av一区| 蜜臀久久久久久久| 老司机精品视频在线| 国产精品一二一区| 成人精品一区二区三区中文字幕| 91麻豆自制传媒国产之光| 欧美偷拍一区二区| 欧美xfplay| 国产精品国产三级国产aⅴ无密码| 亚洲精品视频免费看| 午夜精品久久久| 裸体歌舞表演一区二区| 波多野洁衣一区| 欧亚一区二区三区| 欧美成人性福生活免费看| 中文字幕不卡一区| 亚洲一卡二卡三卡四卡无卡久久 | 久久国内精品视频| 国产成a人无v码亚洲福利| 91麻豆国产福利精品| 69堂成人精品免费视频| 国产喷白浆一区二区三区| 依依成人精品视频| 精品在线免费视频| 色综合久久中文字幕综合网| 欧美肥妇毛茸茸| 欧美国产精品专区| 午夜精品福利一区二区蜜股av| 美国毛片一区二区| 91丨porny丨蝌蚪视频| 欧美一区二区三区不卡| 国产精品丝袜黑色高跟| 亚洲第一电影网| 欧美日韩一区二区三区不卡| 日韩三级在线免费观看| 亚洲欧美偷拍另类a∨色屁股| 日韩成人一区二区三区在线观看| 国产精品综合一区二区三区| 不卡一区在线观看| 精品亚洲aⅴ乱码一区二区三区| 成人黄色网址在线观看| 欧美日韩精品免费| 国产精品天天摸av网| 青娱乐精品视频在线| 一本一道久久a久久精品综合蜜臀| 欧美mv和日韩mv国产网站| 亚洲精品免费在线| 国产精品羞羞答答xxdd| 欧美日本视频在线| 亚洲精选一二三| 国产精品1区2区3区| 日韩一二三四区| 亚洲永久免费av| www.成人网.com| 国产亚洲精品中文字幕| 老司机午夜精品| 欧美日韩国产影片| 亚洲欧美国产高清| 成人av资源站| 精品国产免费久久| 丝袜美腿成人在线| 欧美日韩一区中文字幕| 亚洲伦在线观看| 成人免费va视频| 久久精品免视看| 久久狠狠亚洲综合| 日韩精品中文字幕一区| 日韩精品欧美成人高清一区二区| 91麻豆精品在线观看| 国产精品色噜噜| 国产精品一区二区免费不卡| 精品奇米国产一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅| 91九色最新地址| 亚洲精品五月天| 日本韩国视频一区二区| 亚洲免费观看高清完整版在线观看| 懂色av一区二区夜夜嗨| 国产午夜精品理论片a级大结局| 国产一区二区三区免费观看| 精品国产伦一区二区三区免费| 狂野欧美性猛交blacked| 91精品在线免费观看| 日韩av二区在线播放| 欧美精品在线观看播放| 日韩福利视频导航| 制服丝袜激情欧洲亚洲| 日本aⅴ亚洲精品中文乱码| 欧美日韩视频不卡| 日韩影院精彩在线| 日韩视频免费观看高清完整版在线观看 | 亚洲国产精品久久不卡毛片| 在线免费一区三区| 一区二区三区日本| 欧美日韩高清影院| 免费一级片91| 精品国产一区久久| 成人午夜视频福利| 亚洲精品成人天堂一二三| 欧美三级日本三级少妇99| 免费成人深夜小野草| 久久综合狠狠综合久久综合88| 国产精品夜夜嗨| 中文字幕色av一区二区三区| 色婷婷综合中文久久一本| 亚洲一本大道在线| 欧美一区二区在线播放| 激情深爱一区二区| 中文字幕不卡在线观看| 91九色最新地址| 免费美女久久99| 久久久.com| 色综合久久久久综合99| 偷拍日韩校园综合在线| 精品国产污网站| av一二三不卡影片| 亚洲国产精品欧美一二99 | 婷婷中文字幕一区三区| 欧美大片拔萝卜| 成人精品一区二区三区四区| 亚洲中国最大av网站| 日韩午夜在线播放| 成人avav影音| 五月开心婷婷久久| 中文字幕av免费专区久久| 欧美在线观看一区| 国内精品国产成人| 亚洲美女偷拍久久| 欧美成人一区二区三区在线观看| 99久久精品免费看国产免费软件| 亚洲第一成人在线| 日本一区二区免费在线观看视频| 欧日韩精品视频| 国产精品亚洲人在线观看| 亚洲动漫第一页| 国产亚洲欧美日韩日本| 欧美日韩国产在线播放网站| 成人一区二区三区视频在线观看| 亚洲妇女屁股眼交7| 中文欧美字幕免费| 欧美一区二区免费观在线| 成人av资源站| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲国产中文字幕| 日本一区二区成人在线| 欧美一区二区三级| 91精品1区2区| 国产成人av电影在线| 青青草原综合久久大伊人精品 | 一区二区三区免费| 国产日韩精品一区二区三区 | 日韩电影免费一区| 亚洲欧美日本韩国| 久久精品人人爽人人爽| 欧美一区二区三区免费在线看| 成人h动漫精品| 国产一区二区精品在线观看| 视频精品一区二区| 亚洲猫色日本管| 国产精品初高中害羞小美女文| 欧美va亚洲va| 欧美一区二区三区四区久久| 欧美性大战xxxxx久久久| 99精品欧美一区| 丰满少妇久久久久久久| 国内久久婷婷综合| 免费黄网站欧美| 亚洲一区二区在线视频| |精品福利一区二区三区| 久久久久久久久蜜桃| 欧美精品第一页| 欧美日韩一区二区三区在线看| 99久久婷婷国产精品综合| 国产成人免费在线视频| 国产在线精品一区二区不卡了| 日韩高清在线电影| 性做久久久久久久久| 亚洲国产色一区| 夜夜嗨av一区二区三区中文字幕| 最新久久zyz资源站| 国产精品久久久久永久免费观看 | 国产精品一二三四| 精品亚洲成a人| 激情欧美一区二区|