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

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

?? tabbedmdi.h

?? 一款最完整的工業組態軟源代碼
?? H
?? 第 1 頁 / 共 5 頁
字號:
/////////////////////////////////////////////////////////////////////////////
// TabbedMDI.h - Classes that help implement a "Tabbed MDI" interface.
//
// Classes:
//   CTabbedMDIFrameWindowImpl - 
//      Instead of having CMainFrame inherit from
//      CMDIFrameWindowImpl, you can have it inherit from
//      CTabbedMDIFrameWindowImpl. For an out-of-the box WTL MDI
//      application, there are 3 instances of CMDIFrameWindowImpl
//      to replace with CTabbedMDIFrameWindowImpl.
//   CTabbedMDIChildWindowImpl - 
//      If you want your MDI child window to have a corresponding
//      tab in the MDI tab window, inherit from this class instead
//      of from CMDIChildWindowImpl.
//   CTabbedMDIClient - 
//      The CTabbedMDIFrameWindowImpl contains CTabbedMDIClient,
//      which subclasses the "MDI Client" window
//      (from the OS, that manages the MDI child windows).
//      It handles sizing/positioning the tab window,
//      calling the appropriate Display, Remove, UpdateText
//      for the tabs with the HWND of the active child,
//      etc.  You can use CTabbedMDIClient without using
//      CTabbedMDIFrameWindowImpl. To do so, simply call
//      SetTabOwnerParent(m_hWnd) then SubclassWindow(m_hWndMDIClient)
//      on a CTabbedMDIClient member variable after calling
//      CreateMDIClient in your main frame class.
//   CMDITabOwner -
//      The MDITabOwner is the parent of the actual tab window
//      (such as CDotNetTabCtrl), and sibling to the "MDI Client" window.
//      The tab owner tells the MDI child when to display a context
//      menu for the tab (the default menu is the window's system menu).
//      The tab owner changes the active MDI child when the
//      active tab changes.  It also does the real work of
//      hiding and showing the tabs.  It also handles adding,
//      removing, and renaming tabs based on an HWND.
//   CTabbedMDICommandBarCtrl/CTabbedMDICommandBarCtrlImpl -
//      In your MDI application, instead of using CMDICommandBarCtrl,
//      use CTabbedMDICommandBarCtrl.  It addresses a couple of bugs
//      in WTL 7.0's CMDICommandBarCtrl, and allows you to enable
//      or disable whether you want to see the document icon
//      and min/max/close button in the command bar when the
//      child is maximized.  To add additional functionality,
//      derive your own class from CTabbedMDICommandBarCtrlImpl.
//      
//     
//
// Written by Daniel Bowen (dbowen@es.com)
// Copyright (c) 2002-2004 Daniel Bowen.
//
// Depends on CustomTabCtrl.h originally by Bjarke Viksoe (bjarke@viksoe.dk)
//  with the modifications by Daniel Bowen
//
// This code may be used in compiled form in any way you desire. This
// file may be redistributed by any means PROVIDING it is 
// not sold for profit without the authors written consent, and 
// providing that this notice and the authors name is included.
//
// This file is provided "as is" with no expressed or implied warranty.
// The author accepts no liability if it causes any damage to you or your
// computer whatsoever.
//
// If you find bugs, have suggestions for improvements, etc.,
// please contact the author.
//
// History (Date/Author/Description):
// ----------------------------------
//
// 2004/06/28: Daniel Bowen
// - CMDITabOwnerImpl -
//   * Fix GetTabStyles to return DWORD instead of bool
// - CTabbedMDIChildWindowImpl -
//   * OnShowTabContextMenu - Add warning in Debug builds if using non SC_* command.
//     To use use non SC_* commands, you should override handling
//      UWM_MDICHILDSHOWTABCONTEXTMENU
//     in a derived class, and do your own context menu there.
//     See the "TabDemo" sample for an example.
// - Clean up warnings on level 4
//
// 2004/05/14: Daniel Bowen
// - CMDITabOwnerImpl - 
//   * Update OnClick handling so it only sets focus to the tab view
//     if the selected tab is being clicked. Without this update,
//     other code that tries to minimize flickering when switching
//     the active view doesn't get called.
// - CTabbedMDIClient
//   * Fix bug in SaveModified that checks incoming argument for NULL
//
// 2004/04/29: Daniel Bowen
// - Require WTL version 7.1 or later (because of WTL's CMDICommandBarCtrlImpl)
// - New and changed registered messages for tabbed MDI children:
//   * UWM_MDICHILDISMODIFIED - Asks whether the document(s) referenced by a 
//     tabbed MDI child has been modified, and if so, the LPARAM has an
//     ITabbedMDIChildModifiedItem* with which to fill out information.
//     Return TRUE if there are one or more modified documents for the child.
//   * UWM_MDICHILDSAVEMODIFIED (change meaning slightly) - Tells the tabbed MDI
//     child to save any modifications without asking.  The LPARAM is an
//     ITabbedMDIChildModifiedItem* with additional information.  Before, this message
//     was used to ask about saving modifications, then saving if the user chose to.
//     The asking about modifications is now consolidated in "SaveAllModified"
//     (or by doing FindModified, CSaveModifiedItemsDialog, SaveModified).
//   * UWM_MDICHILDCLOSEWITHNOPROMPT - Closes the tabbed MDI child bypassing WM_CLOSE
//     (so that the user isn't prompted to save modifications - for when they've
//     already been asked).
// - CTabbedMDIClient
//   * New "HideMDITabsWhenMDIChildNotMaximized".  If you call this
//     with TRUE, then the MDI tabs are shown when the MDI children
//     are maximized, and hidden when they are not maximized.
//   * Change "SaveAllModified".  It can be used to implement "save all"
//     that doesn't prompt, or it can be used to prompt about saving any
//     modified documents using a dialog with a checkbox list for modified items
//     (which only works with tabbed MDI children).
//   * FindModified - Asks all tabbed MDI children whether they have been
//     modified, and uses ITabbedMDIChildModifiedList and ITabbedMDIChildModifiedItem
//     for extended information.
//   * SaveModified - Iterates items in a ITabbedMDIChildModifiedList and
//     sends UWM_MDICHILDSAVEMODIFIED to save modifications. If an item has
//     sub-items, the "top-level" item is responsible for ensuring that
//     modifications are saved.
//   * CloseAll - Close all MDI child windows.  If bPreferNoPrompt is true,
//     try sending UWM_MDICHILDCLOSEWITHNOPROMPT first to the window, so that
//      the child is closed and the user is not prompted about any modifications.
//     Otherwise send WM_SYSCOMMAND with SC_CLOSE, which sends WM_CLOSE.
// - CMDITabOwnerImpl
//   * Have the MDI tab styles default to using the new style
//     CTCS_DRAGREARRANGE
//   * Respond to NM_CLICK, CTCN_ACCEPTITEMDRAG and CTCN_CANCELITEMDRAG
//     from the tab control, and set focus to the tab item's view
//
// 2003/12/16: Daniel Bowen
// - CTabbedMDICommandBarCtrlImpl
//   * Update OnMDISetMenu to match CMDICommandBarCtrlImpl::OnMDISetMenu in WTL 7.1
//   * Update RefreshMaximizedState to match corresponding code in
//     CMDICommandBarCtrlImpl::OnAllHookMessages in WTL 7.1
//   * Have RefreshMaximizedState be overrideable (call through pT->)
//   * Have RefreshMaximizedState's 2nd parameter indicate whether the document
//     icon has changed, instead of whether the child has changed
//     (to match what WTL 7.1 is doing in OnAllHookMessages)
///  * NOTE: There is a problem in WTL 7.1 OnAllHookMessages that
//     CTabbedMDICommandBarCtrlImpl fixes.  See
//     http://groups.yahoo.com/group/wtl/message/7627
//     for a description of the fix.  Future versions of WTL should
//     also have this fix.
//
// 2003/08/11: Daniel Bowen
// - CMDITabOwner:
//   * Add new "KeepTabsHidden" method.
//   * Have the old CMDITabOwner be CMDITabOwnerImpl with new template parameter
//     for most derived class so that others can derive from it and
//     have things work right.  CMDITabOwner now is very simple and
//     just inherits from CMDITabOwnerImpl
// - Use "LongToHandle" with return value from GetClassLong
//
// 2003/06/27: Daniel Bowen
// - CMDITabOwner:
//   * Use typedefs for thisClass, baseClass, customTabOwnerClass
//   * Replace
//      DECLARE_WND_CLASS(_T("MdiTabOwner"))
//     with
//      DECLARE_WND_CLASS_EX(_T("MdiTabOwner"), 0, COLOR_APPWORKSPACE)
//     (gets rid of CS_DBLCLKS, CS_HREDRAW and CS_VREDRAW, sets background brush)
//   * Have OnAddFirstTab and OnRemoveLastTab call base class versions
//     (in case we ever do anything interesting there)
// - Check failure of window creation (DefWindowProc when handling WM_CREATE)
//   and return immediately if it failed.
//
// 2003/06/03: Daniel Bowen
// - Fix compile errors for VC 7.1
//
// 2003/02/27: Daniel Bowen
// - Use _U_RECT instead of WTL::_U_RECT.
//   For VC7, this means you must #define _WTL_NO_UNION_CLASSES
//   before including the WTL header files, or you will
//   get compile errors (the ATL7 union classes are defined
//   in atlwin.h).
//
// 2002/12/11: Daniel Bowen
// - New UWM_MDICHILDSAVEMODIFIED message sent to MDI child frames.
//   The child frame receiving this should see if the "document"
//   has been modified, and needs to be saved (usually with a 
//   yes/no/cancel message box).  If the user chooses to cancel,
//   return non-zero from the UWM_MDICHILDSAVEMODIFIED handler.
// - CTabbedMDIClient -
//   * SaveAllModified - Iterates the MDI child windows, and
//      sends UWM_MDICHILDSAVEMODIFIED. If a child returns non-zero,
//      the iteration stops.  You can also specify whether to
//      close the child window after sending UWM_MDICHILDSAVEMODIFIED.
//   * CloseAll - Close All MDI child windows.  When handling WM_CLOSE,
//      the MDI child window should *not* have a "Cancel" option
//      if prompting to save a modified document.
//
// 2002/11/27: Daniel Bowen
// - CTabbedMDIChildWindowImpl -
//   * When handling WM_MOUSEACTIVATE in CTabbedMDIChildWindowImpl,
//     let the message get to the top window before possibly doing
//     MDIActivate (more like the MFC code in CMDIChildWnd::OnMouseActivate)
//
// 2002/11/21: Daniel Bowen
// - CMDITabOwner - 
//   * ModifyTabStyles for use before CMDITabOwner is created as a window
// - CTabbedMDIClient -
//   * Expose SetDrawFlat and GetDrawFlat
//   * Updates so that drawing flat draws correctly
// - CTabbedMDIChildWindowImpl - 
//   * Handle WM_MOUSEACTIVATE, and call MDIActivate if
//     MDI child is not already active.  This solves the problem
//     where you have a dialog window as the view of the MDI child,
//     and clicking on a child control (edit box, etc.) doesn't
//     give focus or activate the MDI child (or activate the app
//     if its not active).  This code will ideally make its
//     way into future versions of WTL.
//
// 2002/09/25: Daniel Bowen
// - CTabbedMDICommandBarCtrl -
//   * Break out CTabbedMDICommandBarCtrl into CTabbedMDICommandBarCtrlImpl
//     and CTabbedMDICommandBarCtrl (just like CMDICommandBarCtrlImpl
//     and CMDICommandBarCtrl).
//     You can derive from CTabbedMDICommandBarCtrlImpl
//     if you would like to extend functionality (such as providing
//     your own handling of WM_MDISETMENU).  See the commented out
//     sample class after CTabbedMDICommandBarCtrl.
// - CMDITabOwner -
//   * Expose "SetTabStyles" and "GetTabStyles" so that you can change
//     the tab related styles to something different than the default
// - UWM_MDI... messages -
//   * The TabbedMDI related classes use a handful of custom window
//     messages.  These messages are guaranteed to be unique across
//     all windows for a particular windows session by using
//     RegisterWindowMessage
//
//     Initially, these message IDs were declared as static variables
//     and initialized here in the header.
//     However, that gave them "internal linkeage".  Essentially,
//     this meant that there were multiple copies of these variables.
//     In Visual C++ 6, there was also a bug that caused the variables
//     not to be initialized properly in release mode. So the class
//     CTabbedMDIChildWindowImpl ensured their initialization in its
//     constructor.  The problem was, only the version of the variables
//     in the same translation unit got initialized by doing it this way.
//
//     These variables are now declared using __declspec(selectany)
//     so that there will not be multiple copies.  RegisterWindowMessage
//     for each message ID is now called in the constructor of the
//     struct "RegisterTabbedMDIMessages". If you are using _ATL_MIN_CRT
//     or define _TABBEDMDI_MESSAGES_EXTERN_REGISTER, then you must
//     have an instance of the "RegisterTabbedMDIMessages" struct in
//     one .cpp file.  Otherwise, a global instance of the struct will
//     be declared in this header file (whose constructor will be called
//     by the CRT at load time).  If you are not referencing
//     TabbedMDI.h in stdafx.h, and have multiple translation units
//     including it, then you'll need to do it the 
//     _TABBEDMDI_MESSAGES_EXTERN_REGISTER way.  Also, if you do
//     use _ATL_MIN_CRT, you will get a warning unless you define
//     _TABBEDMDI_MESSAGES_NO_WARN_ATL_MIN_CRT
//
// 2002/08/26: Daniel Bowen
// - CTabbedMDIClient -
//   * Add new template parameter "TTabOwner" to allow easily
//     changing the tab owner class used
//
// 2002/06/26: Daniel Bowen
// - CTabbedMDIFrameWindowImpl - Expose "TClient" and "TTabCtrl".
// - CMDITabOwner - Expose "TTabCtrl".
// - CTabbedMDIClient -
//   * Expose "TTabCtrl"
//   * New method "GetTabOwner" to get a reference to the C++ class
//     instance implementing the MDI tab owner window.
//   * New method "UseMDIChildIcon" to specify that you want the MDI
//     tabs to include the document icon for the MDI child on the
//     corresponding tab
// 
// 2002/06/12: Daniel Bowen
// - Publish codeproject article.  For history prior
//   to the release of the article, please see the article
//   and the section "Note to previous users"

#ifndef __WTL_TABBED_MDI_H__
#define __WTL_TABBED_MDI_H__

#pragma once

#ifndef __cplusplus
	#error Tabbed MDI requires C++ compilation (use a .cpp suffix)
#endif

#ifndef __ATLAPP_H__
	#error TabbedMDI.h requires atlapp.h to be included first
#endif

#ifndef __ATLWIN_H__
	#error TabbedMDI.h requires atlwin.h to be included first
#endif

#ifndef __ATLFRAME_H__
	#error TabbedFrame.h requires atlframe.h to be included first
#endif

#ifndef __ATLCTRLW_H__
	#error TabbedFrame.h requires atlctrlw.h to be included first
#endif

#if _WTL_VER < 0x0710
	#error TabbedMDI.h requires WTL 7.1 or higher
#endif

#ifndef __CUSTOMTABCTRL_H__
#include "CustomTabCtrl.h"
#endif

#ifndef __WTL_TABBED_FRAME_H__
#include "TabbedFrame.h"
#endif

#define UWM_MDICHILDTABTEXTCHANGE_MSG      _T("UWM_MDICHILDTABTEXTCHANGE_MSG-5DAD28E1-C961-11d5-8BDA-00500477589F")
#define UWM_MDICHILDTABTOOLTIPCHANGE_MSG   _T("UWM_MDICHILDTABTOOLTIPCHANGE_MSG-5DAD28E3-C961-11d5-8BDA-00500477589F")
#define UWM_MDICHILDACTIVATIONCHANGE_MSG   _T("UWM_MDICHILDACTIVATIONCHANGE_MSG-5DAD28E5-C961-11d5-8BDA-00500477589F")
#define UWM_MDICHILDMAXIMIZED_MSG          _T("UWM_MDICHILDMAXIMIZED_MSG-5DAD28E7-C961-11d5-8BDA-00500477589F")
#define UWM_MDICHILDUNMAXIMIZED_MSG        _T("UWM_MDICHILDUNMAXIMIZED_MSG-5DAD28E9-C961-11d5-8BDA-00500477589F")
#define UWM_MDICHILDSHOWTABCONTEXTMENU_MSG _T("UWM_MDICHILDSHOWTABCONTEXTMENU_MSG-5DAD28EB-C961-11d5-8BDA-00500477589F")
#define UWM_MDICHILDSAVEMODIFIED_MSG       _T("UWM_MDICHILDSAVEMODIFIED_MSG-5DAD28EC-C961-11d5-8BDA-00500477589F")
#define UWM_MDICHILDISMODIFIED_MSG         _T("UWM_MDICHILDISMODIFIED_MSG-5DAD28EC-C961-11d5-8BDA-00500477589F")
#define UWM_MDICHILDCLOSEWITHNOPROMPT_MSG  _T("UWM_MDICHILDCLOSEWITHNOPROMPT_MSG-5DAD28EC-C961-11d5-8BDA-00500477589F")

__declspec(selectany) UINT UWM_MDICHILDTABTEXTCHANGE = 0;
__declspec(selectany) UINT UWM_MDICHILDTABTOOLTIPCHANGE = 0;
__declspec(selectany) UINT UWM_MDICHILDACTIVATIONCHANGE = 0;
__declspec(selectany) UINT UWM_MDICHILDMAXIMIZED = 0;
__declspec(selectany) UINT UWM_MDICHILDUNMAXIMIZED = 0;
__declspec(selectany) UINT UWM_MDICHILDSHOWTABCONTEXTMENU = 0;
__declspec(selectany) UINT UWM_MDICHILDSAVEMODIFIED = 0;
__declspec(selectany) UINT UWM_MDICHILDISMODIFIED = 0;
__declspec(selectany) UINT UWM_MDICHILDCLOSEWITHNOPROMPT = 0;

struct RegisterTabbedMDIMessages
{
	RegisterTabbedMDIMessages()
	{
		UWM_MDICHILDTABTEXTCHANGE =      ::RegisterWindowMessage(UWM_MDICHILDTABTEXTCHANGE_MSG);
		UWM_MDICHILDTABTOOLTIPCHANGE =   ::RegisterWindowMessage(UWM_MDICHILDTABTOOLTIPCHANGE_MSG);
		UWM_MDICHILDACTIVATIONCHANGE =   ::RegisterWindowMessage(UWM_MDICHILDACTIVATIONCHANGE_MSG);
		UWM_MDICHILDMAXIMIZED =          ::RegisterWindowMessage(UWM_MDICHILDMAXIMIZED_MSG);
		UWM_MDICHILDUNMAXIMIZED =        ::RegisterWindowMessage(UWM_MDICHILDUNMAXIMIZED_MSG);
		UWM_MDICHILDSHOWTABCONTEXTMENU = ::RegisterWindowMessage(UWM_MDICHILDSHOWTABCONTEXTMENU_MSG);
		UWM_MDICHILDSAVEMODIFIED =       ::RegisterWindowMessage(UWM_MDICHILDSAVEMODIFIED_MSG);
		UWM_MDICHILDISMODIFIED =         ::RegisterWindowMessage(UWM_MDICHILDISMODIFIED_MSG);
		UWM_MDICHILDCLOSEWITHNOPROMPT =  ::RegisterWindowMessage(UWM_MDICHILDCLOSEWITHNOPROMPT_MSG);
	}
};

#if defined(_ATL_MIN_CRT) || defined(_TABBEDMDI_MESSAGES_EXTERN_REGISTER)
	// With _ATL_MIN_CRT, we don't get global constructors and destructors,
	// which is the out-of-the-box way we register the tabbed MDI window messages,
	// so the client needs to register these messages.
	// _TABBEDMDI_MESSAGES_EXTERN_REGISTER also skips declaring a global
	// right here - see the note below.

	#if defined(_ATL_MIN_CRT) && !defined(_TABBEDMDI_MESSAGES_NO_WARN_ATL_MIN_CRT)
		#pragma message("By defining _ATL_MIN_CRT, you are responsible for registering the custom TabbedMDI window messages")
		#pragma message(" (Define _TABBEDMDI_MESSAGES_NO_WARN_ATL_MIN_CRT to not see this message again)")
	#endif
#else
	// Global struct, whose constructor will get called when the executable image gets loaded
	// (the CRT makes sure global objects get constructed and destructed)

	// If you are getting "already defined" errors because of including TabbedMDI.h
	// in multiple translation units, you can either change it so that you
	// reference this file only from stdafx.h, or you can declare
	// "_TABBEDMDI_MESSAGES_EXTERN_REGISTER" before including TabbedMDI.h
	// and then have an instance of the "RegisterTabbedMDIMessages"
	// structure in a translation unit that has reference to this file.
	RegisterTabbedMDIMessages g_RegisterTabbedMDIMessages;
#endif


/////////////////////////////////////////////////////////////////////////////
//
// CTabbedMDIFrameWindowImpl
//
/////////////////////////////////////////////////////////////////////////////

template <
	class T,
	class TClient = CTabbedMDIClient< CDotNetTabCtrl<CTabViewTabItem> >,
	class TBase = CMDIWindow,
	class TWinTraits = CFrameWinTraits>
class ATL_NO_VTABLE CTabbedMDIFrameWindowImpl :
	public CMDIFrameWindowImpl<T, TBase, TWinTraits >
{
public:
	// Expose the type of MDI client
	typedef typename TClient TClient;
	// Expose the type of tab control
	typedef typename TClient::TTabCtrl TTabCtrl;
	
// Member variables
protected:
	TClient m_tabbedClient;

// Methods

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩视频专区在线播放| 亚欧色一区w666天堂| 国产伦理精品不卡| 精品少妇一区二区三区免费观看| 一区二区三区蜜桃| 欧美日本高清视频在线观看| 丝袜脚交一区二区| 精品国产露脸精彩对白| 激情综合网激情| 中文字幕av在线一区二区三区| 成人动漫一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了 | 欧美日韩一区二区三区在线| 秋霞av亚洲一区二区三| 2024国产精品视频| 国产一区二区导航在线播放| 18欧美亚洲精品| 7777精品久久久大香线蕉| 国产一区二区调教| 亚洲一区二区三区不卡国产欧美| 26uuu精品一区二区在线观看| 国产精品99久久久久久似苏梦涵| 亚洲丝袜精品丝袜在线| 精品欧美久久久| 色综合天天综合网天天狠天天| 亚洲小少妇裸体bbw| 亚洲国产成人在线| 欧美日韩国产一二三| 精品一区二区三区在线观看 | 国产一区二区在线视频| 国产精品乱码妇女bbbb| 欧美欧美欧美欧美| 热久久国产精品| 国产欧美日韩在线视频| 色噜噜狠狠成人中文综合 | 欧美老肥妇做.爰bbww视频| 久久精品国产免费看久久精品| 国产午夜精品美女毛片视频| 成人中文字幕合集| 亚洲另类中文字| 久久免费偷拍视频| 欧美日韩国产另类不卡| 免费成人在线观看视频| 一区二区高清在线| 欧美精品一区二区精品网| 91国产成人在线| 国产成人免费视频网站高清观看视频| 亚洲精品乱码久久久久久久久| 精品久久免费看| 8x8x8国产精品| 一本到不卡精品视频在线观看| 国产美女一区二区三区| 久久99日本精品| 亚洲高清中文字幕| 亚洲一区二区三区四区在线 | 欧美日韩免费一区二区三区视频| 成人福利视频网站| 91视频在线看| 99在线视频精品| www.爱久久.com| www.欧美色图| 欧美三级电影在线看| 欧美日本视频在线| 日韩欧美一区二区三区在线| 日韩午夜在线观看视频| 久久综合狠狠综合久久综合88| 欧美v亚洲v综合ⅴ国产v| 欧美成人欧美edvon| 久久久亚洲精品石原莉奈 | 欧美电影免费观看高清完整版| 3d成人h动漫网站入口| 欧美亚洲一区二区在线| 欧美日韩国产欧美日美国产精品| 欧美日韩日日骚| 欧美韩日一区二区三区四区| 久久久777精品电影网影网| 国产精品成人一区二区三区夜夜夜| 亚洲欧美电影一区二区| 蜜臀av国产精品久久久久| 国产一区美女在线| 一本高清dvd不卡在线观看| 精品国产三级a在线观看| 国产精品欧美极品| 亚洲私人黄色宅男| 国产综合成人久久大片91| k8久久久一区二区三区 | 免费成人性网站| 99热这里都是精品| 精品日韩99亚洲| 亚洲国产精品综合小说图片区| 美腿丝袜在线亚洲一区| 91美女片黄在线观看91美女| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲第一会所有码转帖| 色综合久久88色综合天天6| 国产女同互慰高潮91漫画| 婷婷国产v国产偷v亚洲高清| 国产一区二区三区在线观看免费| 欧美在线免费观看亚洲| 最好看的中文字幕久久| 福利视频网站一区二区三区| 欧美美女直播网站| 日本特黄久久久高潮| 717成人午夜免费福利电影| 亚洲地区一二三色| 欧美日韩亚洲综合一区| 亚洲精品免费在线| 色综合天天综合狠狠| 亚洲品质自拍视频网站| 成人精品一区二区三区中文字幕| 日本一区二区三区在线不卡| 国产激情精品久久久第一区二区 | 97精品国产露脸对白| 亚洲视频电影在线| 91视频在线观看免费| 亚洲桃色在线一区| 26uuu国产一区二区三区| 午夜激情一区二区| 精品卡一卡二卡三卡四在线| 天天综合天天做天天综合| 欧美疯狂做受xxxx富婆| 老色鬼精品视频在线观看播放| 精品精品国产高清a毛片牛牛 | 日韩一级二级三级| 亚洲成人av一区二区| 精品日韩av一区二区| 另类小说图片综合网| 中文幕一区二区三区久久蜜桃| 欧美日韩色综合| 精一区二区三区| 国内成人免费视频| 亚洲v日本v欧美v久久精品| 亚洲欧美日韩一区二区三区在线观看| 在线观看91视频| 欧美日韩国产一区二区三区地区| 蜜桃av一区二区三区| 综合自拍亚洲综合图不卡区| 制服丝袜中文字幕亚洲| 97精品视频在线观看自产线路二| 成人免费小视频| 91麻豆精品国产91久久久使用方法 | 国产成人精品一区二区三区四区 | 九色porny丨国产精品| 国产日韩视频一区二区三区| 6080午夜不卡| 欧美色电影在线| av亚洲精华国产精华精华| 国产精品一区二区男女羞羞无遮挡| 亚洲国产精品天堂| 亚洲婷婷国产精品电影人久久| 国产午夜一区二区三区| 精品国产露脸精彩对白| 精品1区2区在线观看| 精品国产不卡一区二区三区| 精品日韩在线观看| 欧美精品一区二区高清在线观看| 欧美日韩国产美| 这里只有精品免费| 欧美精品18+| 日韩一区二区精品在线观看| 欧美不卡一区二区三区| 3atv在线一区二区三区| 精品国产乱码久久久久久1区2区| 精品久久国产字幕高潮| 亚洲国产高清不卡| 亚洲综合图片区| 久久成人久久鬼色| 99视频一区二区三区| 欧美高清性hdvideosex| 国产喂奶挤奶一区二区三区| 国产精品久久毛片a| 午夜视频在线观看一区二区| 国产尤物一区二区| 丁香六月久久综合狠狠色| 欧美日韩在线播放三区四区| 26uuu精品一区二区| 亚洲午夜羞羞片| 国产成人在线观看| 欧美久久高跟鞋激| 亚洲精品中文在线| 欧美丝袜第三区| 午夜精品福利一区二区三区蜜桃| 91久久免费观看| 午夜精品久久久久久久久| 欧美欧美欧美欧美首页| 午夜精品久久久久久久久| 欧美一区二区大片| 狠狠久久亚洲欧美| 国产精品久久久久久久裸模| 国产风韵犹存在线视精品| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 91美女在线观看| 欧美韩国日本一区| 国产成人av影院| 中文字幕一区二区三区不卡| 成人国产精品免费观看动漫| 欧美激情在线免费观看| 国产成人免费av在线| 欧美极品少妇xxxxⅹ高跟鞋| 豆国产96在线|亚洲|