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

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

?? hexedvw.cpp

?? CAN__組建現場總線系統設計技術(光盤)
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
// hexedvw.cpp : Defines the class behaviors for the application.
//

#include "stdafx.h"
#include "editcmd.h"
#include "..\\resource.h"
#include "hexedvw.h"

#include <afxole.h>

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

TCHAR hextable[16] = {_T ('0'), _T ('1'), _T ('2'), _T ('3'), _T ('4'), _T ('5'), _T ('6'), _T ('7'),
                     _T ('8'), _T ('9'), _T ('A'), _T ('B'), _T ('C'), _T ('D'), _T ('E'), _T ('F')};

//把BYTE a用16進制形式的2個字符表示出來
#define TOHEX(a, b) {*b++ = hextable[a >> 4];*b++ = hextable[a&0x0f];}

/////////////////////////////////////////////////////////////////////////////
// CHexEditView
#define DEMO
IMPLEMENT_DYNCREATE(CHexEditView, CView)

static LPBYTE s_pData = NULL;      // pointer to data
static int s_length = 0;     // length of data

CHexEditView::CHexEditView()
{
  m_pData = &s_pData;
  m_length = &s_length;
  m_topindex    = 0;
  m_bpr     = 16;    // byte per row 
  m_lpp     = 1;

  m_dwFlags = (HVW_SHOW_ADDRESS|HVW_SHOW_ASCII|HVW_SHOW_HEX|HVW_WIDE_ADDRESS);

  m_offAddress  = 0;
  m_offHex    = 0;
  m_offAscii    = 0;

  m_dwFlags |= HVW_UPDATE;     // update font info
  m_currentMode = EDIT_NONE;

  m_editPos.x = m_editPos.y = 0;
  m_currentAddress = 0;
  m_dwFlags |= HVW_HALF_PAGE;

  m_selStart  = 0xffffffff;
  m_selEnd  = 0xffffffff;

  m_Font.CreateFont(-12, 0,0,0,0,0,0,0,0,0,0,0,0, _T ("Courier New"));
}

CHexEditView::~CHexEditView()
{
}


BEGIN_MESSAGE_MAP(CHexEditView, CView)
  ON_WM_CONTEXTMENU()
  //{{AFX_MSG_MAP(CHexEditView)
  ON_WM_CHAR()
  ON_WM_KILLFOCUS()
  ON_WM_PAINT()
  ON_WM_SETFOCUS()
  ON_WM_SIZE()
  ON_WM_VSCROLL()
  ON_WM_HSCROLL()
  ON_WM_GETDLGCODE()
  ON_WM_ERASEBKGND()
  ON_WM_LBUTTONDOWN()
  ON_WM_LBUTTONDBLCLK()
  ON_WM_MOUSEMOVE()
  ON_WM_LBUTTONUP()
  ON_WM_KEYDOWN()
  ON_COMMAND(ID_EDIT_CLEAR, OnEditClear)
  ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
  ON_COMMAND(ID_EDIT_CUT, OnEditCut)
  ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)
  ON_COMMAND(ID_EDIT_SELECT_ALL, OnEditSelectAll)
  ON_COMMAND(ID_EDIT_UNDO, OnEditUndo)
  ON_COMMAND (ID_READ_ONLY, OnReadOnly)
  ON_UPDATE_COMMAND_UI (ID_READ_ONLY, OnReadOnly)
  ON_COMMAND (ID_FORMAT_SHOW_ADDRESS, OnFormatShowAddress)
  ON_UPDATE_COMMAND_UI (ID_FORMAT_SHOW_ADDRESS, OnUpdateFormatShowAddress)
  ON_COMMAND (ID_FORMAT_SHOW_ASCII, OnFormatShowAscii)
  ON_UPDATE_COMMAND_UI (ID_FORMAT_SHOW_ASCII, OnUpdateFormatShowAscii)
  ON_COMMAND (ID_FORMAT_SHOW_HEX, OnFormatShowHex)
  ON_UPDATE_COMMAND_UI (ID_FORMAT_SHOW_HEX, OnUpdateFormatShowHex)
  ON_COMMAND (ID_FORMAT_WIDE_ADDRESS, OnFormatWideAddress)
  ON_UPDATE_COMMAND_UI (ID_FORMAT_WIDE_ADDRESS, OnUpdateFormatWideAddress)
  ON_COMMAND_RANGE (ID_FORMAT_BPR_FIRST, ID_FORMAT_BPR_LAST, OnBpr)
  ON_UPDATE_COMMAND_UI_RANGE (ID_FORMAT_BPR_FIRST, ID_FORMAT_BPR_LAST, OnUpdateBpr)
  //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CHexEditView message handlers

void CHexEditView::OnDraw(CDC* pDC)
{
  CDocument* pDoc = GetDocument();
  ASSERT_VALID(pDoc);
  // TODO: add draw code for native data here
}

void CHexEditView::OnPaint() 
{
	CPaintDC pdc(this); // device context for painting

	CRect rc;
	GetClientRect(rc);


	//創建兼容DC和Bitmap
	CDC dc;
	dc.CreateCompatibleDC(CDC::FromHandle(pdc.m_ps.hdc));
	CBitmap bm;

	bm.CreateCompatibleBitmap(CDC::FromHandle(pdc.m_ps.hdc), rc.Width(), rc.Height());
	dc.SelectObject(bm);

	//背景
	CBrush b;
	b.CreateSolidBrush(RGB(0xff,0xe0,0xff));
	dc.FillRect(rc, &b);

	ASSERT(m_currentAddress >= 0);
	ASSERT(m_topindex >= 0);

	dc.SelectObject(m_Font);
	int   height    = 0;
	int   x,y;
	TCHAR  buf[256];

	x = rc.TopLeft().x;
	y = rc.TopLeft().y;

	dc.SetBoundsRect(&rc, DCB_DISABLE);

	if(m_pData && *m_pData){//有數據
		//
		// get char dimensions
		//
		if(m_dwFlags & HVW_UPDATE){//更新
			dc.GetCharWidth(_T ('0'), _T ('0'), &m_nullWidth);//m_nullWidth為'0'的寬度
			CSize sz = dc.GetTextExtent(_T ("0"), 1);//字符串"0"的尺寸
			m_lineHeight = sz.cy;//行高
      
			m_offHex  = m_dwFlags & HVW_SHOW_ADDRESS ? (m_dwFlags & HVW_WIDE_ADDRESS ? m_nullWidth * 9 : m_nullWidth * 5) : 0;
//			m_offAscii  = m_dwFlags & HVW_SHOW_ADDRESS ? (m_dwFlags & HVW_WIDE_ADDRESS ? m_nullWidth * 9 : m_nullWidth * 5) : 0;
			//為什么不用
			m_offAscii = m_offHex;
			m_offAscii += m_dwFlags & HVW_SHOW_HEX ? (m_bpr * 3 * m_nullWidth) : 0;

			m_lpp = rc.Height() / m_lineHeight;//lines per page
			m_dwFlags &= ~HVW_HALF_PAGE;
			if(m_lpp * m_bpr > *m_length){//如果不足1頁
				m_lpp = (*m_length + (m_bpr/2)) / m_bpr ;//重新計算行數
				if(*m_length % m_bpr != 0){
					m_dwFlags |= HVW_HALF_PAGE;
					m_lpp++;
				}
			}
			m_dwFlags &= ~HVW_UPDATE;
			UpdateScrollbars();
		}

		TRACE(_T ("%i %i\n"), m_topindex, m_selStart);
    
		height = rc.Height() / m_lineHeight;
		height *= m_lineHeight;//height <= rc.Height()

		if(m_dwFlags & HVW_SHOW_ADDRESS){
			TCHAR fmt[8] = {_T ('%'), _T ('0'), _T ('8'), _T ('l'), _T ('X')};
			fmt[2] = m_dwFlags & HVW_WIDE_ADDRESS ? _T ('8') : _T ('4');
			int w = m_dwFlags & HVW_WIDE_ADDRESS ? 8 : 4;
			y = 0;
			CRect rcd = rc;
			rcd.TopLeft().x = m_offAddress;
			for(int  i = m_topindex; (i < *m_length) && (rcd.TopLeft().y < height); i+= m_bpr)
			{
				_stprintf(buf, fmt, i);
				dc.DrawText(buf, w, rcd, DT_LEFT|DT_TOP|DT_SINGLELINE|DT_NOPREFIX);
				rcd.TopLeft().y += m_lineHeight;
			}
		}
		if(m_dwFlags & HVW_SHOW_HEX){
			y = 0;
			CRect rcd = rc;
			rcd.TopLeft().x = x = m_offHex;

			if(m_selStart != 0xffffffff && (m_currentMode == EDIT_HIGH || m_currentMode == EDIT_LOW))
			{//如果處于選中狀態
				int  i;
				int  n = 0;
				int  selStart = m_selStart, selEnd = m_selEnd;
				if(selStart > selEnd)
					selStart ^= selEnd ^= selStart ^= selEnd;

				for(i = m_topindex; (i < selStart) && (y < height); i++){
					LPTSTR p = buf;
					TOHEX((*m_pData)[i], p);//逐字節化為2個字符
					*p++ = _T (' ');//添加空格作間隔
					dc.TextOut(x, y, buf, 3);
					x += m_nullWidth * 3;
					n++;
					if(n == m_bpr){//換行了
						n = 0;
						x = m_offHex;
						y += m_lineHeight;
					}
				}
				//選擇部分高亮顯示
				dc.SetTextColor(GetSysColor(COLOR_HIGHLIGHTTEXT));
				dc.SetBkColor(GetSysColor(COLOR_HIGHLIGHT));
				for(; (i < selEnd) && (i < *m_length) && (y < height); i++){
					LPTSTR p = buf;
					TOHEX((*m_pData)[i], p);
					*p++ = _T (' ');
					dc.TextOut(x, y, buf, 3);
					x += m_nullWidth * 3;
					n++;
					if(n == m_bpr){
						n = 0;
						x = m_offHex;
						y += m_lineHeight;
					}
				}
				//剩余部分
				dc.SetTextColor(GetSysColor(COLOR_WINDOWTEXT));
				dc.SetBkColor(GetSysColor(COLOR_WINDOW));
				for(; (i < *m_length) && (y < height); i++){
					LPTSTR p = buf;
					TOHEX((*m_pData)[i], p);
					*p++ = _T (' ');
					dc.TextOut(x, y, buf, 3);
					x += m_nullWidth * 3;
					n++;
					if(n == m_bpr){
						n = 0;
						x = m_offHex;
						y += m_lineHeight;
					}
				}
			}
			else{//沒有選中,則簡單多了
				for(int  i = m_topindex; (i < *m_length) && (rcd.TopLeft().y < height);)
				{
					LPTSTR p = buf;
					for(int  n = 0; (n < m_bpr) && (i < *m_length); n++){
						TOHEX((*m_pData)[i], p);
						*p++ = _T (' ');
						i++;
					}
					while(n < m_bpr){
						*p++ = _T (' '); *p++ = _T (' '); *p++ = _T (' ');
						n++;
					}

					dc.DrawText(buf, m_bpr*3, rcd, DT_LEFT|DT_TOP|DT_SINGLELINE|DT_NOPREFIX);
					rcd.TopLeft().y += m_lineHeight;
				}
			}
		}

		if(m_dwFlags & HVW_SHOW_ASCII){
			y = 0;
			CRect rcd = rc;
			rcd.TopLeft().x = x = m_offAscii;
			if(m_selStart != 0xffffffff && m_currentMode == EDIT_ASCII)
			{//處于選中狀態
				int  i;
				int  n = 0;
				int  selStart = m_selStart, selEnd = m_selEnd;
				if(selStart > selEnd)
					selStart ^= selEnd ^= selStart ^= selEnd;

				for(i = m_topindex; (i < selStart) && (y < height); i++)
				{
					buf[0] = isprint((*m_pData)[i]) ? (*m_pData)[i] : _T ('.');
					dc.TextOut(x, y, buf, 1);
					x += m_nullWidth;
					n++;
					if(n == m_bpr){
						n = 0;
						x = m_offAscii;
						y += m_lineHeight;
					}
				}
				dc.SetTextColor(GetSysColor(COLOR_HIGHLIGHTTEXT));
				dc.SetBkColor(GetSysColor(COLOR_HIGHLIGHT));
				for(; (i < selEnd) && (y < height); i++){
					buf[0] = isprint((*m_pData)[i]) ? (*m_pData)[i] : _T ('.');
					dc.TextOut(x, y, buf, 1);
					x += m_nullWidth;
					n++;
					if(n == m_bpr){
						n = 0;
						x = m_offAscii;
						y += m_lineHeight;
					}
				}
				dc.SetTextColor(GetSysColor(COLOR_WINDOWTEXT));
				dc.SetBkColor(GetSysColor(COLOR_WINDOW));
				for(; (i < *m_length) && y < height; i++)
				{
					buf[0] = isprint((*m_pData)[i]) ? (*m_pData)[i] : _T ('.');
					dc.TextOut(x, y, buf, 1);
					x += m_nullWidth;
					n++;
					if(n == m_bpr){
						n = 0;
						x = m_offAscii;
						y += m_lineHeight;
					}
				}
			}
			else{//非選中狀態
				for(int  i = m_topindex; (i < *m_length) && (rcd.TopLeft().y < height);)
				{
					LPTSTR p = buf;
					for(int  n = 0; (n < m_bpr) && (i < *m_length); n++)
					{
						*p++ = isprint((*m_pData)[i]) ? (*m_pData)[i] : _T ('.');
						i++;
					}
					dc.DrawText(buf, n, rcd, DT_LEFT|DT_TOP|DT_SINGLELINE|DT_NOPREFIX);
					rcd.TopLeft().y += m_lineHeight;
				}
			}
		}
	}
	pdc.BitBlt(0, 0, rc.Width(), rc.Height(), &dc, 0, 0, SRCCOPY);
}

void CHexEditView::OnSetFocus(CWnd* pOldWnd) 
{
	if(m_pData && *m_pData && !IsSelected()){
		if(m_editPos.x == 0 && (m_dwFlags & HVW_SHOW_ADDRESS))
			CreateAddressCaret();
		else
			CreateEditCaret();
		SetCaretPos(m_editPos);
		ShowCaret();
	}
	CWnd::OnSetFocus(pOldWnd);
}

void CHexEditView::OnKillFocus(CWnd* pNewWnd) 
{
	DestroyCaret();
	CWnd::OnKillFocus(pNewWnd);
}

void CHexEditView::OnSize(UINT nType, int cx, int cy) 
{
	CView::OnSize(nType, cx, cy);
}

void CHexEditView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	if(!m_pData || !*m_pData)
		return;

	int oa = m_topindex;
	switch(nSBCode){
    case SB_LINEDOWN:
		if(m_topindex < *m_length - m_lpp*m_bpr)
		{
			//ScrollWindow(0, -m_lineHeight, rc);
			m_topindex += m_bpr;
			RedrawWindow();
		}
		break;
    
	case SB_LINEUP:
		if(m_topindex > 0)
		{
			//ScrollWindow(0, m_lineHeight, rc);
			m_topindex -= m_bpr;
			RedrawWindow();
		}
		break;
    
	case SB_PAGEDOWN:
		if(m_topindex < *m_length - m_lpp*m_bpr)
		{
			m_topindex += m_bpr * m_lpp;
			if(m_topindex > *m_length - m_lpp*m_bpr)
				m_topindex = *m_length - m_lpp*m_bpr;
			RedrawWindow();
		}
		break;

	case SB_PAGEUP:
		if(m_topindex > 0)
		{
			m_topindex -= m_bpr * m_lpp;
			if(m_topindex < 0)
				m_topindex = 0;
			RedrawWindow();
		}
		break;

	case SB_THUMBTRACK:
		m_topindex = nPos * m_bpr;
		RedrawWindow();
		break;
	}
	::SetScrollPos(this->m_hWnd, SB_VERT, m_topindex / m_bpr, TRUE);
	if(!(m_dwFlags & HVW_NO_ADDRESS_CHANGE))
		m_currentAddress += (m_topindex - oa);
	RepositionCaret(m_currentAddress);
}

void CHexEditView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	AfxMessageBox("Not implemented.");
}

UINT CHexEditView::OnGetDlgCode() 
{
  return DLGC_WANTALLKEYS;
}

BOOL CHexEditView::PreCreateWindow(CREATESTRUCT& cs) 
{
  // cs.style |= WS_HSCROLL|WS_VSCROLL;
  // cs.style &= ~(WS_HSCROLL|WS_VSCROLL);
  return CView::PreCreateWindow(cs);
}

BOOL CHexEditView::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) 
{
  // dwStyle |= WS_HSCROLL|WS_VSCROLL;
  dwStyle &= ~(WS_HSCROLL|WS_VSCROLL);
  BOOL bRet = CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
  if(bRet)
    SetFont(&m_Font);
  return bRet;
}

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

void CHexEditView::GetOptions(BOOL &a, BOOL &h, BOOL &c, BOOL &w, BOOL &r)
{
  a = (m_dwFlags & HVW_SHOW_ADDRESS) != 0;
  h = (m_dwFlags & HVW_SHOW_HEX) != 0;
  c = (m_dwFlags & HVW_SHOW_ASCII) != 0;
  w = (m_dwFlags & HVW_WIDE_ADDRESS) != 0;
  r = (m_dwFlags & HVW_READ_ONLY) != 0;
}

void CHexEditView::SetOptions(BOOL a, BOOL h, BOOL c, BOOL w, BOOL r)
{
  if (a)
    m_dwFlags |= HVW_SHOW_ADDRESS;
  else
    m_dwFlags &= ~HVW_SHOW_ADDRESS;
  if (h)
    m_dwFlags |= HVW_SHOW_HEX;
  else
    m_dwFlags &= ~HVW_SHOW_HEX;
  if (c)
    m_dwFlags |= HVW_SHOW_ASCII;
  else
    m_dwFlags &= ~HVW_SHOW_ASCII;
  if (w)
    m_dwFlags |= HVW_WIDE_ADDRESS;
  else
    m_dwFlags &= ~HVW_WIDE_ADDRESS;
  if (r)
    m_dwFlags |= HVW_READ_ONLY;
  else
    m_dwFlags &= ~HVW_READ_ONLY;
  m_dwFlags |= HVW_UPDATE;
}

void CHexEditView::SetOptions(DWORD dwFlags)
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久免费看| 亚洲国产精品天堂| 久久成人麻豆午夜电影| 国产二区国产一区在线观看| 色菇凉天天综合网| 日本一区二区在线不卡| 日本大胆欧美人术艺术动态| 91成人免费电影| 国产精品视频观看| 国产麻豆视频精品| 91精品国产综合久久精品app| 国产精品理论片| 国产一区 二区| 欧美一卡二卡三卡| 亚洲mv大片欧洲mv大片精品| 色综合久久综合| 国产精品欧美综合在线| 激情欧美一区二区| 日韩午夜精品电影| 亚洲va韩国va欧美va| 色综合色综合色综合| 国产精品久久久久久久久免费丝袜| 久久精品噜噜噜成人av农村| 51精品国自产在线| 亚洲成人免费观看| 51午夜精品国产| 日本午夜一区二区| 日韩一级片网站| 美女视频第一区二区三区免费观看网站| 在线免费观看视频一区| 亚洲人快播电影网| 欧美又粗又大又爽| 亚洲国产综合人成综合网站| 欧美亚洲一区二区三区四区| 亚洲电影视频在线| 欧美一区二区黄色| 极品少妇xxxx精品少妇偷拍| 久久综合九色综合欧美98| 国产精品系列在线播放| 国产欧美日韩不卡免费| www.99精品| 亚洲一级电影视频| 欧美一区欧美二区| 国产在线精品一区二区夜色| 国产清纯白嫩初高生在线观看91| 国产成人一区在线| 中文字幕一区二区三区蜜月| 欧美影视一区二区三区| 日韩国产欧美视频| 久久久久久久久久久黄色| 成人午夜伦理影院| 一区二区三区日韩欧美精品| 制服.丝袜.亚洲.另类.中文| 九九国产精品视频| 中文一区二区在线观看| 在线观看亚洲专区| 六月丁香综合在线视频| 中文av字幕一区| 精品视频在线看| 国内精品久久久久影院薰衣草| 中文久久乱码一区二区| 欧美日韩一区不卡| 国产精品一区二区在线观看不卡| 中文字幕佐山爱一区二区免费| 国产精品你懂的在线欣赏| 日本黄色一区二区| 久久精品国产亚洲5555| 中文字幕亚洲在| 日韩精品一区二区三区四区视频| 粉嫩av一区二区三区粉嫩| 午夜视频一区二区| 久久综合久久综合亚洲| 欧美日韩一区精品| 高清久久久久久| 日本欧美韩国一区三区| 亚洲欧美电影一区二区| 精品国产一区久久| 在线观看av一区二区| 国产福利一区二区三区视频| 亚洲一区二区三区小说| 国产精品久久久久四虎| 日韩午夜激情视频| 欧美亚洲综合一区| 国产91在线|亚洲| 蜜臀av一级做a爰片久久| 亚洲视频你懂的| 久久综合色一综合色88| 欧美一区二区不卡视频| 色婷婷av一区| 不卡的电影网站| 国产乱妇无码大片在线观看| 日韩电影在线免费看| 亚洲国产wwwccc36天堂| 中文字幕日韩精品一区| 久久久99精品免费观看| 日韩免费一区二区三区在线播放| 色哟哟精品一区| 99久久综合99久久综合网站| 国产呦精品一区二区三区网站| 色综合网色综合| 成人午夜视频在线观看| 国产大片一区二区| 国产在线观看一区二区| 韩国成人福利片在线播放| 免费黄网站欧美| 秋霞电影网一区二区| 天天色天天操综合| 亚洲无线码一区二区三区| 亚洲精品成人悠悠色影视| 亚洲色欲色欲www| 日韩理论电影院| 亚洲三级在线看| 亚洲欧美一区二区不卡| 国产精品国产馆在线真实露脸| 久久久国产午夜精品| 亚洲精品一区二区三区四区高清| 欧美一区二区三区视频在线| 欧美一区二区三区在线观看| 欧美一区二区国产| 欧美日韩精品系列| 欧美一级专区免费大片| 日韩一区二区三区免费看| 欧美一区二区在线免费播放| 91精品午夜视频| 精品成a人在线观看| 国产调教视频一区| 国产精品国产自产拍高清av| 亚洲精品久久嫩草网站秘色| 亚洲v中文字幕| 日本三级亚洲精品| 国产精品白丝jk白祙喷水网站 | 精品久久久久久久久久久久包黑料 | 日本女人一区二区三区| 日本成人在线电影网| 毛片av中文字幕一区二区| 精品一区二区三区视频在线观看| 国产乱子伦视频一区二区三区| 粉嫩嫩av羞羞动漫久久久| 色香蕉久久蜜桃| 91麻豆精品国产91久久久久久久久| 精品sm捆绑视频| 国产精品电影院| 亚洲第一主播视频| 国产毛片精品一区| 91色综合久久久久婷婷| 日韩一级二级三级精品视频| 欧美国产欧美综合| 污片在线观看一区二区| 精品亚洲aⅴ乱码一区二区三区| 成人h精品动漫一区二区三区| 欧美亚州韩日在线看免费版国语版| 亚洲综合免费观看高清完整版在线 | 美脚の诱脚舐め脚责91 | 欧美日韩精品一二三区| 久久日一线二线三线suv| 亚洲摸摸操操av| 国产精品中文字幕一区二区三区| 91麻豆免费看片| 26uuu久久综合| 亚洲国产视频网站| 大陆成人av片| 日韩欧美三级在线| 亚洲精品v日韩精品| 韩国精品久久久| 欧美日本精品一区二区三区| 日本一区二区三区高清不卡| 图片区日韩欧美亚洲| 99国内精品久久| 久久久精品人体av艺术| 天天影视网天天综合色在线播放| 成人免费视频播放| 精品伦理精品一区| 婷婷久久综合九色综合伊人色| 成人动漫精品一区二区| 久久亚洲私人国产精品va媚药| 午夜婷婷国产麻豆精品| 91国偷自产一区二区三区成为亚洲经典 | 一本久久综合亚洲鲁鲁五月天| 精品久久五月天| 日韩电影在线一区二区| 欧美日韩一级二级三级| 最新久久zyz资源站| 国产精品一区二区久久精品爱涩 | 久久麻豆一区二区| 美女一区二区视频| 在线播放国产精品二区一二区四区| 亚洲色图一区二区三区| proumb性欧美在线观看| 久久精品人人做| 国产一区二区三区电影在线观看 | 蜜臀av国产精品久久久久| 波波电影院一区二区三区| 亚洲国产高清在线| 国产 欧美在线| 国产精品剧情在线亚洲| 成人一区二区三区在线观看| 国产校园另类小说区| 国产精品中文有码| 久久影院电视剧免费观看| 激情深爱一区二区|