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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? prttviewview.cpp

?? 能打印的TreeView.rar
?? CPP
字號:
// PrtTViewView.cpp : implementation of the CPrtTViewView class
//

#include "stdafx.h"
#include "PrtTView.h"

#include "PrtTViewDoc.h"
#include "PrtTViewView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CPrtTViewView

IMPLEMENT_DYNCREATE(CPrtTViewView, CTreeView)

BEGIN_MESSAGE_MAP(CPrtTViewView, CTreeView)
	//{{AFX_MSG_MAP(CPrtTViewView)
	ON_COMMAND(ID_EDIT_EXPANDALL, OnEditExpandall)
	ON_COMMAND(ID_EDIT_COLLAPSEALL, OnEditCollapseall)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CTreeView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CTreeView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CTreeView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPrtTViewView construction/destruction

CPrtTViewView::CPrtTViewView()
{
	Tree=&GetTreeCtrl();
}

CPrtTViewView::~CPrtTViewView()
{
}

BOOL CPrtTViewView::PreCreateWindow(CREATESTRUCT& cs)
{
	cs.style |=TVS_HASLINES|TVS_HASBUTTONS|TVS_LINESATROOT;

	return CTreeView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CPrtTViewView drawing

void CPrtTViewView::OnDraw(CDC* pDC)
{
	CPrtTViewDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	// TODO: add draw code for native data here
}

void CPrtTViewView::OnInitialUpdate()
{
	CTreeView::OnInitialUpdate();

	static BOOL FirstTime=TRUE;
	if (!FirstTime)
		return;
	FirstTime=FALSE;

	// Initialize tree object icon images
	m_treeicon.Create( IDB_TREE_ICONS, 13, 1, RGB(255,0,255) );
	Tree->SetImageList( &m_treeicon, TVSIL_NORMAL );

    // Fill the tree with colored text.
	CString m_str;
	for(int i=1;i<=5;i++)
	{
		m_str.Format("Parent Item %d", i);
		HTREEITEM hItem = Tree->InsertItem(m_str,2,3);
		for(int j=1;j<=5;j++)
		{
			m_str.Format("Child Item %d", j);
			HTREEITEM hChild = Tree->InsertItem(m_str,0,1,hItem);
		    for(int k=1;k<=3;k++)
		    {
			    m_str.Format("ChildChild Item %d", k);
				HTREEITEM hChildChild = Tree->InsertItem(m_str,0,1,hChild);
		        for(int s=1;s<=3;s++)
		        {
			        m_str.Format("ChildChildChild Item %d", s);
			        HTREEITEM hChildChildChild = Tree->InsertItem(m_str,0,1,hChildChild);
		        }
		    }
		}
	}
}

/////////////////////////////////////////////////////////////////////////////
// CPrtTViewView diagnostics

#ifdef _DEBUG
void CPrtTViewView::AssertValid() const
{
	CTreeView::AssertValid();
}

void CPrtTViewView::Dump(CDumpContext& dc) const
{
	CTreeView::Dump(dc);
}

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

/////////////////////////////////////////////////////////////////////////////
// CPrtTViewView message handlers

void CPrtTViewView::OnEditExpandall() 
{
	SetRedraw(FALSE);
	HTREEITEM hItem=Tree->GetRootItem();
	do
	{
		Tree->Expand(hItem,TVE_EXPAND);
		hItem=Tree->GetNextItem(hItem,TVGN_NEXTVISIBLE);
	}
	while (hItem);
	Tree->EnsureVisible(Tree->GetSelectedItem());
	SetRedraw();
}

void CPrtTViewView::OnEditCollapseall() 
{
	SetRedraw(FALSE);
	HTREEITEM hItem=Tree->GetRootItem();
	do
	{
		Tree->Expand(hItem,TVE_COLLAPSE);
		hItem=Tree->GetNextItem(hItem,TVGN_NEXTVISIBLE);
	}
	while (hItem);
	SetRedraw();
}

/////////////////////////////////////////////////////////////////////////////
// CPrtTViewView printing

#define LEFT_MARGIN 4
#define RIGHT_MARGIN 4
#define TOP_MARGIN 4
#define BOTTOM_MARGIN 4

BOOL CPrtTViewView::OnPreparePrinting(CPrintInfo* pInfo) 
{
	return DoPreparePrinting(pInfo);
}

void CPrtTViewView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
	HTREEITEM hItem=Tree->GetRootItem();
	Tree->GetItemRect(hItem,rcBounds,TRUE);
	m_nRowHeight = rcBounds.Height();

	// Find the total number of visible items & the right most coordinate
	int ItemCount=0;
	do
	{
		ItemCount++;
		CRect rc;
		Tree->GetItemRect(hItem,rc,TRUE);
		if (rc.right>rcBounds.right)
			rcBounds.right=rc.right;
		hItem=Tree->GetNextItem(hItem,TVGN_NEXTVISIBLE);
	}
	while (hItem);

	// Find the entire print boundary
	int ScrollMin,ScrollMax;
	GetScrollRange(SB_HORZ,&ScrollMin,&ScrollMax);
	rcBounds.left=0;
	if (ScrollMax>rcBounds.right)
		rcBounds.right=ScrollMax+1;
	rcBounds.top=0;
	rcBounds.bottom=m_nRowHeight*ItemCount;

	// Get text width
	CDC *pCtlDC = Tree->GetDC();
	if (NULL == pCtlDC) return;
	TEXTMETRIC tm;
	pCtlDC->GetTextMetrics(&tm);
	m_nCharWidth = tm.tmAveCharWidth;
	double d = (double)pDC->GetDeviceCaps(LOGPIXELSY)/(double)pCtlDC->GetDeviceCaps(LOGPIXELSY);
	ReleaseDC(pCtlDC);

	// Find rows per page
	int nPageHeight = pDC->GetDeviceCaps(VERTRES);
	m_nRowsPerPage = (int)((double)nPageHeight/d)/m_nRowHeight-TOP_MARGIN-BOTTOM_MARGIN;

	// Set maximum pages
	int pages=(ItemCount-1)/m_nRowsPerPage+1;
	pInfo->SetMaxPage(pages);

	// Create a memory DC compatible with the paint DC
	CPaintDC dc(this);
	CDC MemDC;
	MemDC.CreateCompatibleDC(&dc);

	// Select a compatible bitmap into the memory DC
	CBitmap bitmap;
	bitmap.CreateCompatibleBitmap(&dc, rcBounds.Width(), rcBounds.Height() );
	MemDC.SelectObject(&bitmap);

	// Enlarge window size to include the whole print area boundary
	GetWindowPlacement(&WndPlace);
	MoveWindow(0,0,::GetSystemMetrics(SM_CXEDGE)*2+rcBounds.Width(),
		::GetSystemMetrics(SM_CYEDGE)*2+rcBounds.Height(),FALSE);
	ShowScrollBar(SB_BOTH,FALSE);

	// Call the default printing
	Tree->EnsureVisible(Tree->GetRootItem());
	CWnd::DefWindowProc( WM_PAINT, (WPARAM)MemDC.m_hDC, 0 );

	// Now create a mask
	CDC MaskDC;
	MaskDC.CreateCompatibleDC(&dc);
	CBitmap maskBitmap;

	// Create monochrome bitmap for the mask
	maskBitmap.CreateBitmap( rcBounds.Width(), rcBounds.Height(), 1, 1, NULL );
	MaskDC.SelectObject( &maskBitmap );
	MemDC.SetBkColor( ::GetSysColor( COLOR_WINDOW ) );

	// Create the mask from the memory DC
	MaskDC.BitBlt( 0, 0, rcBounds.Width(), rcBounds.Height(), &MemDC,
		rcBounds.left, rcBounds.top, SRCCOPY );

	// Copy image to clipboard
	CBitmap clipbitmap;
	clipbitmap.CreateCompatibleBitmap(&dc, rcBounds.Width(), rcBounds.Height() );
	CDC clipDC;
	clipDC.CreateCompatibleDC(&dc);
	CBitmap* pOldBitmap = clipDC.SelectObject(&clipbitmap);
	clipDC.BitBlt( 0, 0, rcBounds.Width(), rcBounds.Height(), &MemDC,
		rcBounds.left, rcBounds.top, SRCCOPY);
	OpenClipboard();
	EmptyClipboard();
	SetClipboardData(CF_BITMAP, clipbitmap.GetSafeHandle());
	CloseClipboard();
	clipDC.SelectObject(pOldBitmap);
	clipbitmap.Detach();

	// Copy the image in MemDC transparently
	MemDC.SetBkColor(RGB(0,0,0));
	MemDC.SetTextColor(RGB(255,255,255));
	MemDC.BitBlt(rcBounds.left, rcBounds.top, rcBounds.Width(), rcBounds.Height(),
		&MaskDC, rcBounds.left, rcBounds.top, MERGEPAINT);

	CPalette pal;
	hDIB=DDBToDIB(bitmap, BI_RGB, &pal );
}

void CPrtTViewView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) 
{
	CTreeView::OnPrepareDC(pDC, pInfo);

	// Map logical unit of screen to printer unit
	pDC->SetMapMode(MM_ANISOTROPIC);
	CClientDC dcScreen(NULL);
	pDC->SetWindowExt(dcScreen.GetDeviceCaps(LOGPIXELSX),dcScreen.GetDeviceCaps(LOGPIXELSX));
	pDC->SetViewportExt(pDC->GetDeviceCaps(LOGPIXELSX),pDC->GetDeviceCaps(LOGPIXELSX));
}

void CPrtTViewView::OnPrint(CDC* pDC, CPrintInfo* pInfo) 
{
	// Save dc state
	int nSavedDC = pDC->SaveDC();

	// Set font
	CFont Font;
	LOGFONT lf;
	CFont *pOldFont = GetFont();
	pOldFont->GetLogFont(&lf);
	lf.lfHeight=m_nRowHeight-1;
	lf.lfWidth=0;
	Font.CreateFontIndirect(&lf);
	pDC->SelectObject(&Font);

	PrintHeadFoot(pDC,pInfo);
	pDC->SetWindowOrg(-1*(LEFT_MARGIN*m_nCharWidth),-m_nRowHeight*TOP_MARGIN);

	int height;
	if (pInfo->m_nCurPage==pInfo->GetMaxPage())
		height=rcBounds.Height()-((pInfo->m_nCurPage-1)*m_nRowsPerPage*m_nRowHeight);
	else
		height=m_nRowsPerPage*m_nRowHeight;
	int top=(pInfo->m_nCurPage-1)*m_nRowsPerPage*m_nRowHeight;

	// Print tree view from DIB
	LPBITMAPINFOHEADER lpbi;
	lpbi = (LPBITMAPINFOHEADER)hDIB;
	int nColors = lpbi->biClrUsed ? lpbi->biClrUsed : 1 << lpbi->biBitCount;
	BITMAPINFO &bmInfo = *(LPBITMAPINFO)hDIB;
	LPVOID lpDIBBits;
	if( bmInfo.bmiHeader.biBitCount > 8 )
		lpDIBBits = (LPVOID)((LPDWORD)(bmInfo.bmiColors + 
			bmInfo.bmiHeader.biClrUsed) + 
			((bmInfo.bmiHeader.biCompression == BI_BITFIELDS) ? 3 : 0));
	else
		lpDIBBits = (LPVOID)(bmInfo.bmiColors + nColors);
	HDC hDC=pDC->GetSafeHdc();
	StretchDIBits(hDC,				// hDC
		0,							// DestX
		0,							// DestY
		rcBounds.Width(),			// nDestWidth
		height,						// nDestHeight
		rcBounds.left,				// SrcX
		rcBounds.Height()-top-height,	// SrcY
		rcBounds.Width(),			// wSrcWidth
		height,						// wSrcHeight
		lpDIBBits,					// lpBits
		&bmInfo,					// lpBitsInfo
		DIB_RGB_COLORS,				// wUsage
		SRCCOPY);					// dwROP

	pDC->SelectObject(pOldFont);
	pDC->RestoreDC( nSavedDC );
}

void CPrtTViewView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo) 
{
	GlobalFree(hDIB);
	SetWindowPlacement(&WndPlace);
	RedrawWindow();
}

void CPrtTViewView::PrintHeadFoot(CDC *pDC, CPrintInfo *pInfo)
{
	CClientDC dcScreen(NULL);
	CRect rc;
	rc.top=m_nRowHeight*(TOP_MARGIN-2);
	rc.bottom = (int)((double)(pDC->GetDeviceCaps(VERTRES)*dcScreen.GetDeviceCaps(LOGPIXELSY))
		/(double)pDC->GetDeviceCaps(LOGPIXELSY));
	rc.left = LEFT_MARGIN*m_nCharWidth;
	rc.right = (int)((double)(pDC->GetDeviceCaps(HORZRES)*dcScreen.GetDeviceCaps(LOGPIXELSX))
		/(double)pDC->GetDeviceCaps(LOGPIXELSX))-RIGHT_MARGIN*m_nCharWidth;

	// Print App title on top left corner
	CString sTemp;
	sTemp=GetDocument()->GetTitle();
	sTemp+=" object hierarchy";
	CRect header(rc);
	header.bottom=header.top+m_nRowHeight;
	pDC->DrawText(sTemp, header, DT_LEFT | DT_SINGLELINE | DT_NOPREFIX | DT_VCENTER);

	rc.top = rc.bottom - m_nRowHeight*(BOTTOM_MARGIN-1);
	rc.bottom = rc.top + m_nRowHeight;

	// Print draw page number at bottom center
	sTemp.Format("Page %d/%d",pInfo->m_nCurPage,pInfo->GetMaxPage());
	pDC->DrawText(sTemp,rc, DT_CENTER | DT_SINGLELINE | DT_NOPREFIX | DT_VCENTER);
}

HANDLE CPrtTViewView::DDBToDIB( CBitmap& bitmap, DWORD dwCompression, CPalette* pPal )
{
	BITMAP bm;
	BITMAPINFOHEADER bi;
	LPBITMAPINFOHEADER lpbi;
	DWORD dwLen;
	HANDLE hDIB;
	HANDLE handle;
	HDC hDC;
	HPALETTE hPal;

	ASSERT( bitmap.GetSafeHandle() );

	// The function has no arg for bitfields
	if ( dwCompression == BI_BITFIELDS )
		return NULL;

	// If a palette has not been supplied use defaul palette
	hPal = (HPALETTE) pPal->GetSafeHandle();
	if (hPal==NULL)
		hPal = (HPALETTE) GetStockObject(DEFAULT_PALETTE);

	// Get bitmap information
	bitmap.GetObject(sizeof(bm),(LPSTR)&bm);

	// Initialize the bitmapinfoheader
	bi.biSize               = sizeof(BITMAPINFOHEADER);
	bi.biWidth              = bm.bmWidth;
	bi.biHeight             = bm.bmHeight;
	bi.biPlanes             = 1;
	bi.biBitCount           = bm.bmPlanes * bm.bmBitsPixel;
	bi.biCompression        = dwCompression;
	bi.biSizeImage          = 0;
	bi.biXPelsPerMeter      = 0;
	bi.biYPelsPerMeter      = 0;
	bi.biClrUsed            = 0;
	bi.biClrImportant       = 0;

	// Compute the size of the  infoheader and the color table
	int nColors = (1 << bi.biBitCount);
	if ( nColors > 256 ) 
		nColors = 0;
	dwLen = bi.biSize + nColors * sizeof(RGBQUAD);

	// We need a device context to get the DIB from
	hDC = ::GetDC(NULL);
	hPal = SelectPalette(hDC,hPal,FALSE);
	RealizePalette(hDC);

	// Allocate enough memory to hold bitmapinfoheader and color table
	hDIB = GlobalAlloc(GMEM_FIXED,dwLen);

	if (!hDIB)
	{
		SelectPalette(hDC,hPal,FALSE);
		::ReleaseDC(NULL,hDC);
		return NULL;
	}

	lpbi = (LPBITMAPINFOHEADER)hDIB;

	*lpbi = bi;

	// Call GetDIBits with a NULL lpBits param, so the device driver 
	// will calculate the biSizeImage field 
	GetDIBits(hDC, (HBITMAP)bitmap.GetSafeHandle(), 0L, (DWORD)bi.biHeight,
		(LPBYTE)NULL, (LPBITMAPINFO)lpbi, (DWORD)DIB_RGB_COLORS);

	bi = *lpbi;

	// If the driver did not fill in the biSizeImage field, then compute it
	// Each scan line of the image is aligned on a DWORD (32bit) boundary
	if (bi.biSizeImage == 0)
	{
		bi.biSizeImage = ((((bi.biWidth * bi.biBitCount) + 31) & ~31) / 8) 
			* bi.biHeight;

		// If a compression scheme is used the result may infact be larger
		// Increase the size to account for this.
		if (dwCompression != BI_RGB)
			bi.biSizeImage = (bi.biSizeImage * 3) / 2;
	}

	// Realloc the buffer so that it can hold all the bits
	dwLen += bi.biSizeImage;
	if (handle = GlobalReAlloc(hDIB, dwLen, GMEM_MOVEABLE))
		hDIB = handle;
	else
	{
		GlobalFree(hDIB);

		// Reselect the original palette
		SelectPalette(hDC,hPal,FALSE);
		::ReleaseDC(NULL,hDC);
		return NULL;
	}

	// Get the bitmap bits
	lpbi = (LPBITMAPINFOHEADER)hDIB;

	// FINALLY get the DIB
	BOOL bGotBits = GetDIBits( hDC, (HBITMAP)bitmap.GetSafeHandle(),
							0L,                             // Start scan line
							(DWORD)bi.biHeight,             // # of scan lines
							(LPBYTE)lpbi                    // address for bitmap bits
							+ (bi.biSize + nColors * sizeof(RGBQUAD)),
							(LPBITMAPINFO)lpbi,             // address of bitmapinfo
							(DWORD)DIB_RGB_COLORS);         // Use RGB for color table

	if( !bGotBits )
	{
		GlobalFree(hDIB);

		SelectPalette(hDC,hPal,FALSE);
		::ReleaseDC(NULL,hDC);
		return NULL;
	}

	SelectPalette(hDC,hPal,FALSE);
	::ReleaseDC(NULL,hDC);
	return hDIB;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲电影激情视频网站| 国产精品视频看| 蜜臀精品久久久久久蜜臀| 在线播放91灌醉迷j高跟美女 | 国产欧美综合在线观看第十页| 极品美女销魂一区二区三区| 久久一区二区三区国产精品| 国产成人午夜99999| 国产精品久久久久久福利一牛影视| 91丨九色丨尤物| 午夜精品福利久久久| 精品国产91亚洲一区二区三区婷婷| 国产91富婆露脸刺激对白| 亚洲精品视频自拍| 日韩免费性生活视频播放| 国产精品白丝jk黑袜喷水| 亚洲精品自拍动漫在线| 91精品国产91综合久久蜜臀| 国产一区二区影院| 亚洲精品欧美在线| 2023国产精品自拍| 色天使色偷偷av一区二区| 美国一区二区三区在线播放| 国产精品剧情在线亚洲| 欧美做爰猛烈大尺度电影无法无天| 日本怡春院一区二区| 欧美国产禁国产网站cc| 欧美日韩国产精品自在自线| 精品一区二区三区蜜桃| 亚洲男人电影天堂| 精品99999| 欧美亚洲图片小说| 国产成人在线观看| 亚洲第一福利视频在线| 国产夜色精品一区二区av| 色综合久久久久综合99| 国产乱码精品一区二区三区五月婷| 自拍偷拍亚洲欧美日韩| 日韩欧美123| 欧美日韩1234| av亚洲精华国产精华精华| 日韩电影免费在线| 亚洲精品久久7777| 国产欧美精品一区| 日韩精品一区二区三区在线观看| 99re热视频精品| 国产盗摄精品一区二区三区在线 | 一区二区三区小说| 久久精品视频网| 精品日产卡一卡二卡麻豆| 日本精品一区二区三区高清| 国产乱色国产精品免费视频| 美腿丝袜亚洲一区| 亚洲aaa精品| 亚洲黄色av一区| 欧美经典一区二区三区| 日韩美女在线视频| 欧美一级夜夜爽| 欧美另类变人与禽xxxxx| 在线观看免费视频综合| 99久久精品国产导航| 成人污视频在线观看| 国产精品一区二区男女羞羞无遮挡 | 日本中文字幕一区二区有限公司| 亚洲私人黄色宅男| 亚洲人成网站精品片在线观看| 国产精品网站导航| 中文字幕av资源一区| 国产亚洲婷婷免费| 国产午夜精品美女毛片视频| 日韩欧美国产1| 精品成人免费观看| 精品美女被调教视频大全网站| 91精品欧美福利在线观看| 欧美日本视频在线| 91精品久久久久久久久99蜜臂| 欧美精品乱码久久久久久按摩| 欧美日韩精品一区二区三区| 欧美天堂一区二区三区| 欧美性生活大片视频| 欧美日免费三级在线| 欧美男男青年gay1069videost| 欧美日韩一区三区| 欧美一级片在线看| 欧美变态口味重另类| 国产色综合一区| 中文字幕一区二区三区视频| 自拍偷拍国产亚洲| 亚洲福利一二三区| 热久久免费视频| 国产综合成人久久大片91| 国产剧情在线观看一区二区| 成人免费高清在线| 一本色道久久综合亚洲aⅴ蜜桃| 色一情一乱一乱一91av| 欧美调教femdomvk| 精品国产免费人成电影在线观看四季 | 日本道色综合久久| 91精品国产一区二区三区蜜臀| 精品国产乱码久久久久久蜜臀| 中文字幕第一区综合| 亚洲码国产岛国毛片在线| 午夜精品爽啪视频| 黑人巨大精品欧美黑白配亚洲| 成人国产在线观看| 欧美日韩在线观看一区二区 | 日韩精品三区四区| 韩日欧美一区二区三区| 91女厕偷拍女厕偷拍高清| 欧美狂野另类xxxxoooo| 精品国产髙清在线看国产毛片 | 国产精品成人一区二区三区夜夜夜| 曰韩精品一区二区| 国产在线视频一区二区| 91视频观看免费| 日韩欧美国产精品一区| 日韩美女啊v在线免费观看| 亚洲18色成人| 成人av网站在线观看| 欧美日韩一区三区| 亚洲国产精品久久久久婷婷884 | 中文字幕视频一区| 青青草91视频| 色婷婷综合激情| 国产亚洲欧洲997久久综合| 一区二区三区av电影| 国产一区二区成人久久免费影院| 日本电影欧美片| 中文字幕亚洲综合久久菠萝蜜| 婷婷六月综合网| 91美女视频网站| 久久久国产午夜精品| 舔着乳尖日韩一区| 91传媒视频在线播放| 国产亚洲精久久久久久| 男人的天堂亚洲一区| 在线视频一区二区三区| 欧美国产精品一区| 国产精品一区在线观看你懂的| 欧美日韩不卡视频| 亚洲精品视频观看| 91热门视频在线观看| 欧美精品一区在线观看| 日本中文一区二区三区| 欧美在线观看视频一区二区| 国产精品久久久久久福利一牛影视| 久久91精品国产91久久小草| 欧美天天综合网| 国产最新精品精品你懂的| 91麻豆精品国产自产在线观看一区 | 久久亚洲一级片| 蜜桃av噜噜一区| 日韩欧美黄色影院| 日韩国产欧美在线播放| 在线观看精品一区| 一区二区三区在线视频免费观看| 9i看片成人免费高清| 国产精品久久久久久久岛一牛影视 | 欧美男生操女生| 亚洲在线中文字幕| 欧美专区日韩专区| 亚洲黄色在线视频| 色狠狠综合天天综合综合| 亚洲丝袜精品丝袜在线| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 日韩一本二本av| 午夜电影一区二区| 欧美男女性生活在线直播观看| 亚洲成人av一区| 91精品国产91久久久久久一区二区 | 夜夜夜精品看看| 欧美在线你懂得| 丝袜美腿一区二区三区| 91精品国产91久久久久久最新毛片| 日韩精品高清不卡| 日韩一区二区三区av| 狠狠久久亚洲欧美| 国产精品午夜免费| 色综合久久综合网欧美综合网| 一区二区三区鲁丝不卡| 欧美日韩aaa| 国产一区 二区 三区一级| 国产欧美综合在线观看第十页| 99精品国产热久久91蜜凸| 亚洲国产一区视频| 欧美电视剧在线看免费| 国产精品中文字幕一区二区三区| 国产日韩欧美一区二区三区乱码 | 国产精品欧美久久久久一区二区| 91在线免费播放| 亚洲国产一区二区视频| 日韩一区二区三区电影| 国产激情一区二区三区四区 | 99久久免费精品| www.视频一区| 亚洲国产精品视频| 精品久久一区二区三区| 成人免费黄色大片| 日本欧美一区二区在线观看| 久久一区二区视频|