青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

coreBugZJ

此 blog 已棄。

圖標(biāo),菜單,加速鍵,消息框——Windows編程上機(jī)作業(yè)之二

練習(xí)使用圖標(biāo),菜單,加速鍵,消息框等資源。


1.
圖標(biāo)(注冊類時使用自己畫的大圖標(biāo)和小圖標(biāo))。

2. 菜單(設(shè)計一個菜單,能控制動態(tài)改變圖標(biāo)(31單選),在四個位置顯示大圖標(biāo)(復(fù)選),關(guān)于)。

3. 加速鍵(每個菜單項都有加速鍵)。

4. 消息框(改變圖標(biāo)前確認(rèn)是否要修改, About)。

5. 顯示菜單前動態(tài)生成一個下拉菜單,加入到主菜單中(FileExit,位置0), 也要處理加速鍵。

6.選擇圖標(biāo)3時復(fù)選菜單灰化,不顯示復(fù)選大圖標(biāo)。

 

實(shí)現(xiàn)功能 5 時,自己查MSDN

 CopyAcceleratorTable

 CreateAcceleratorTable

 DestroyAcceleratorTable

 

1.       我最初是在Win7寫此程序,動態(tài)改動標(biāo)題欄圖標(biāo)時,使用 ::SetClassLong( hWnd, GCL_HICON, (long)(hIcon) ); 沒有效果,仔細(xì)看老師的ppt,確實(shí)是這么講的,然后到 MSDN 中查閱 SetClassLong 函數(shù)時,看到 GCL_HICONSM,我猜測是因?yàn)槲业拇翱陬悶?WNDCLASSEX,其中大小圖標(biāo)是有區(qū)別的,應(yīng)該用 GCL_HICONSM ,于是我調(diào)用 ::SetClassLong( hWnd, GCL_HICONSM, (long)(hIcon) ); 標(biāo)題欄的小圖標(biāo)可以修改了。然而回到WinXP繼續(xù)開發(fā)時,標(biāo)題欄圖標(biāo)又無法修改了,以為是WinXP下不支持24位圖標(biāo),改為4位,無效。大小圖標(biāo)分別建立資源,依然無效。最后將窗口類換為 WNDCLASS 后,SetClassLong 可以正常工作。

2. 設(shè)置加速鍵時,對 Ctrl + 1 這種有數(shù)字的加速鍵,我誤用了小鍵盤的數(shù)字鍵 Ctrl + numpad1,后來才發(fā)現(xiàn)。

 

截圖:


程序信息消息框:

 

圖標(biāo)類型 1

 

圖標(biāo)類型 1 時,顯示圖標(biāo)

 

換圖標(biāo)時的詢問對話框:

 

換為圖標(biāo) 3 時,不顯示復(fù)選大圖標(biāo)

 

 

換為圖標(biāo) 3 時,復(fù)選菜單無效灰化

 

 

鍵盤加速鍵都可以正常工作。

 

源碼:

WinZJ.cpp
  1// WinZJ.cpp : Defines the entry point for the application.
  2//
  3
  4#include "stdafx.h"
  5#include "resource.h"
  6
  7#define MAX_LOADSTRING 100
  8
  9// Global Variables:
 10HINSTANCE hInst;                    // current instance
 11TCHAR szTitle[MAX_LOADSTRING];                // The title bar text
 12TCHAR szWindowClass[MAX_LOADSTRING];            // the main window class name
 13
 14// Forward declarations of functions included in this code module:
 15ATOM                MyRegisterClass(HINSTANCE hInstance);
 16BOOL                InitInstance(HINSTANCE, int);
 17LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
 18
 19int APIENTRY _tWinMain(HINSTANCE hInstance,
 20        HINSTANCE hPrevInstance,
 21        LPTSTR    lpCmdLine,
 22        int       nCmdShow)
 23{
 24        UNREFERENCED_PARAMETER(hPrevInstance);
 25        UNREFERENCED_PARAMETER(lpCmdLine);
 26
 27        // TODO: Place code here.
 28        MSG msg;
 29        HACCEL hAccelTable;
 30
 31        ACCEL  entryAccel[ 100 ];
 32        int   nEntryAccel;
 33
 34        // Initialize global strings
 35        LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
 36        LoadString(hInstance, IDC_WINZJ, szWindowClass, MAX_LOADSTRING);
 37        MyRegisterClass(hInstance);
 38
 39        // Perform application initialization:
 40        if (!InitInstance (hInstance, nCmdShow))
 41        {
 42                return FALSE;
 43        }

 44
 45        hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WINZJ));
 46        nEntryAccel = ::CopyAcceleratorTable( hAccelTable, NULL, 0 );
 47        ::CopyAcceleratorTable( hAccelTable, entryAccel, nEntryAccel );
 48        entryAccel[ nEntryAccel ].cmd = IDM_EXIT;
 49        entryAccel[ nEntryAccel ].fVirt = ( FVIRTKEY | FCONTROL | FSHIFT );
 50        entryAccel[ nEntryAccel ].key = VK_DELETE;
 51        ++nEntryAccel;
 52        ::DestroyAcceleratorTable( hAccelTable );
 53        hAccelTable = ::CreateAcceleratorTable( entryAccel, nEntryAccel );
 54
 55        // Main message loop:
 56        while (GetMessage(&msg, NULL, 00))
 57        {
 58                if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
 59                {
 60                        TranslateMessage(&msg);
 61                        DispatchMessage(&msg);
 62                }

 63        }

 64
 65        ::DestroyAcceleratorTable( hAccelTable );
 66        return (int) msg.wParam;
 67}

 68
 69
 70
 71//
 72//  FUNCTION: MyRegisterClass()
 73//
 74//  PURPOSE: Registers the window class.
 75//
 76//  COMMENTS:
 77//
 78//    This function and its usage are only necessary if you want this code
 79//    to be compatible with Win32 systems prior to the 'RegisterClassEx'
 80//    function that was added to Windows 95. It is important to call this function
 81//    so that the application will get 'well formed' small icons associated
 82//    with it.
 83//
 84ATOM MyRegisterClass(HINSTANCE hInstance)
 85{
 86        WNDCLASS wc;
 87
 88        wc.style        = CS_HREDRAW | CS_VREDRAW;
 89        wc.lpfnWndProc            = WndProc;
 90        wc.cbClsExtra        = 0;
 91        wc.cbWndExtra        = 0;
 92        wc.hInstance        = hInstance;
 93        wc.hIcon        = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINZJ));
 94        wc.hCursor        = LoadCursor(NULL, IDC_ARROW);
 95        wc.hbrBackground    = (HBRUSH)(COLOR_WINDOW+1);
 96        wc.lpszMenuName            = MAKEINTRESOURCE(IDC_WINZJ);
 97        wc.lpszClassName    = szWindowClass;
 98
 99        return ::RegisterClass( &wc );
100}

101
102//
103//   FUNCTION: InitInstance(HINSTANCE, int)
104//
105//   PURPOSE: Saves instance handle and creates main window
106//
107//   COMMENTS:
108//
109//        In this function, we save the instance handle in a global variable and
110//        create and display the main program window.
111//
112BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
113{
114        HWND hWnd;
115
116        hInst = hInstance; // Store instance handle in our global variable
117
118        hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
119                CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
120
121        if (!hWnd)
122        {
123                return FALSE;
124        }

125
126        ShowWindow(hWnd, nCmdShow);
127        UpdateWindow(hWnd);
128
129        return TRUE;
130}

131
132BOOL ChangeIcon( HWND hWnd ) {
133        return IDYES == ::MessageBox( hWnd, TEXT("確定要修改嗎?"), TEXT("Confirmation"), MB_YESNO | MB_ICONQUESTION );
134}

135
136HICON GetIcon( DWORD dwIconMenuId, LPTSTR str ) {
137        DWORD dwIconId;
138        switch ( dwIconMenuId ) {
139        case IDM_ICON_1 : 
140                dwIconId   = IDI_WINZJ;
141                lstrcpy( str, TEXT("當(dāng)前使用的圖標(biāo)是:圖標(biāo) 1") );
142                break;
143        case IDM_ICON_2 : 
144                dwIconId   = IDI_ICON_OTHER;
145                lstrcpy( str, TEXT("當(dāng)前使用的圖標(biāo)是:圖標(biāo) 2") );
146                break;
147        case IDM_ICON_3 : 
148                dwIconId   = IDI_ICON_OTHER2;
149                lstrcpy( str, TEXT("當(dāng)前使用的圖標(biāo)是:圖標(biāo) 3") );
150                break;
151        default : 
152                return NULL;
153        }

154        return ::LoadIcon( hInst, MAKEINTRESOURCE(dwIconId) );
155}

156
157//
158//  FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
159//
160//  PURPOSE:  Processes messages for the main window.
161//
162//  WM_COMMAND    - process the application menu
163//  WM_PAINT    - Paint the main window
164//  WM_DESTROY    - post a quit message and return
165//
166//
167LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
168{
169        static DWORD dwIconMenuId;
170
171        PAINTSTRUCT ps;
172        HDC hdc;
173        HMENU hMenu = ::GetMenu( hWnd );
174        int wmId    = LOWORD(wParam);
175        int wmEvent = HIWORD(wParam);
176        HICON hIcon;
177        TCHAR str[ 100 ];
178
179        switch (message)
180        {
181        case WM_CREATE : 
182                ::CheckMenuRadioItem( hMenu, IDM_ICON_1, IDM_ICON_1, IDM_ICON_1, MF_BYCOMMAND );
183                dwIconMenuId = IDM_ICON_1;
184                {
185                        HMENU hSubMenu = ::CreatePopupMenu();
186                        ::AppendMenu( hSubMenu, MF_STRING, IDM_EXIT, TEXT("Exit\tCtrl+Shift+Delete") );
187                        ::InsertMenu( hMenu, 0, MF_BYPOSITION | MF_POPUP | MF_STRING, (UINT)hSubMenu, TEXT("&File") );
188                }

189                break;
190        case WM_COMMAND:
191                switch (wmId)
192                {
193                case IDM_APP_INFO :
194                        ::MessageBox( hWnd, TEXT("第二次上機(jī)練習(xí)\n圖標(biāo),菜單,加速鍵,消息框\n\n學(xué)號:*********\n姓名:****\n"), TEXT("Lab2"), MB_ICONINFORMATION );
195                        break;
196                case IDM_EXIT : 
197                        ::DestroyWindow( hWnd );
198                        break;
199                case IDM_SHOW_1 : 
200                case IDM_SHOW_2 : 
201                case IDM_SHOW_3 : 
202                case IDM_SHOW_4 : 
203                        if ( ::GetMenuState( hMenu, wmId, MF_BYCOMMAND ) & MF_CHECKED ) {
204                                ::CheckMenuItem( hMenu, wmId, MF_UNCHECKED );
205                        }

206                        else {
207                                ::CheckMenuItem( hMenu, wmId, MF_CHECKED );
208                        }

209                        ::InvalidateRect( hWnd, NULL, TRUE );
210                        break;
211                case IDM_ICON_1 : 
212                case IDM_ICON_2 : 
213                case IDM_ICON_3 : 
214                        if ( (wmId!=dwIconMenuId) && (::ChangeIcon(hWnd)) ) {
215                                // 注意 Resource.h 中 IDM_ICON_1 .. IDM_ICON_3 等差 1
216                                ::CheckMenuRadioItem( hMenu, IDM_ICON_1, IDM_ICON_3, wmId, MF_BYCOMMAND );
217                                dwIconMenuId = wmId;
218                                if ( wmId == IDM_ICON_3 ) {
219                                        ::EnableMenuItem( hMenu, IDM_SHOW_1, MF_BYCOMMAND | MF_GRAYED );
220                                        ::EnableMenuItem( hMenu, IDM_SHOW_2, MF_BYCOMMAND | MF_GRAYED );
221                                        ::EnableMenuItem( hMenu, IDM_SHOW_3, MF_BYCOMMAND | MF_GRAYED );
222                                        ::EnableMenuItem( hMenu, IDM_SHOW_4, MF_BYCOMMAND | MF_GRAYED );
223                                }

224                                else {
225                                        ::EnableMenuItem( hMenu, IDM_SHOW_1, MF_BYCOMMAND | MF_ENABLED );
226                                        ::EnableMenuItem( hMenu, IDM_SHOW_2, MF_BYCOMMAND | MF_ENABLED );
227                                        ::EnableMenuItem( hMenu, IDM_SHOW_3, MF_BYCOMMAND | MF_ENABLED );
228                                        ::EnableMenuItem( hMenu, IDM_SHOW_4, MF_BYCOMMAND | MF_ENABLED );
229                                }

230                                ::InvalidateRect( hWnd, NULL, TRUE );
231                        }

232                        break;
233                default:
234                        return DefWindowProc(hWnd, message, wParam, lParam);
235                }

236                break;
237        case WM_PAINT:
238                hdc = BeginPaint(hWnd, &ps);
239
240                hIcon = ::GetIcon( dwIconMenuId, str );
241
242                ::SetClassLong( hWnd, GCL_HICON, (long)(hIcon) );
243
244                ::TextOut( hdc, 100100, str, lstrlen(str) );
245                ::DrawIcon( hdc, 300100, hIcon );
246
247                if (dwIconMenuId != IDM_ICON_3 ) {
248                        // 注意 Resource.h 中 IDM_SHOW_1 .. IDM_SHOW_4 等差 1
249                        for ( wmId = IDM_SHOW_1; wmId <= IDM_SHOW_4; ++wmId ) {
250                                if ( ::GetMenuState( hMenu, wmId, MF_BYCOMMAND ) & MF_CHECKED ) {
251                                        ::DrawIcon( hdc, 230 + (wmId-IDM_SHOW_1)%2*100230 + (wmId-IDM_SHOW_1)/2*100, hIcon );
252                                }

253                        }

254                }

255
256                EndPaint(hWnd, &ps);
257                break;
258        case WM_DESTROY:
259                PostQuitMessage(0);
260                break;
261        default:
262                return DefWindowProc(hWnd, message, wParam, lParam);
263        }

264        return 0;
265}

266


WinZJ.rc
  1// Microsoft Visual C++ generated resource script.
  2//
  3#include "resource.h"
  4
  5#define APSTUDIO_READONLY_SYMBOLS
  6/////////////////////////////////////////////////////////////////////////////
  7//
  8// Generated from the TEXTINCLUDE 2 resource.
  9//
 10#ifndef APSTUDIO_INVOKED
 11#include "targetver.h"
 12#endif
 13#define APSTUDIO_HIDDEN_SYMBOLS
 14#include "windows.h"
 15#undef APSTUDIO_HIDDEN_SYMBOLS
 16
 17/////////////////////////////////////////////////////////////////////////////
 18#undef APSTUDIO_READONLY_SYMBOLS
 19
 20/////////////////////////////////////////////////////////////////////////////
 21// Chinese (Simplified, PRC) resources
 22
 23#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
 24LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
 25
 26/////////////////////////////////////////////////////////////////////////////
 27//
 28// Icon
 29//
 30
 31// Icon with lowest ID value placed first to ensure application icon
 32// remains consistent on all systems.
 33IDI_ICON_OTHER          ICON                    "icon_other.ico"
 34IDI_ICON_OTHER2         ICON                    "icon_other2.ico"
 35#endif    // Chinese (Simplified, PRC) resources
 36/////////////////////////////////////////////////////////////////////////////
 37
 38
 39/////////////////////////////////////////////////////////////////////////////

 40// English (United States) resources
 41
 42#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
 43LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 44
 45/////////////////////////////////////////////////////////////////////////////
 46//
 47// Icon
 48//
 49
 50// Icon with lowest ID value placed first to ensure application icon
 51// remains consistent on all systems.
 52IDI_WINZJ               ICON                    "WinZJ.ico"
 53
 54/////////////////////////////////////////////////////////////////////////////
 55//
 56// Menu
 57//
 58
 59IDC_WINZJ MENU
 60BEGIN
 61    POPUP "圖標(biāo)類型(&I)"
 62    BEGIN
 63        MENUITEM "圖標(biāo)  1\tCtrl+1",               IDM_ICON_1
 64        MENUITEM "圖標(biāo)  2\tCtrl+2",               IDM_ICON_2
 65        MENUITEM "圖標(biāo)  3\tCtrl+3",               IDM_ICON_3
 66    END
 67    POPUP "顯示圖標(biāo)(&D)"
 68    BEGIN
 69        MENUITEM "顯示  1\tCtrl+Shift+1",         IDM_SHOW_1
 70        MENUITEM "顯示  2\tCtrl+Shift+2",         IDM_SHOW_2
 71        MENUITEM "顯示  3\tCtrl+Shift+3",         IDM_SHOW_3
 72        MENUITEM "顯示  4\tCtrl+Shift+4",         IDM_SHOW_4
 73    END
 74    POPUP "關(guān)于(&A)"
 75    BEGIN
 76        MENUITEM "程序信息(I)\tF1",                 IDM_APP_INFO
 77    END
 78END
 79
 80
 81/////////////////////////////////////////////////////////////////////////////
 82//
 83// Accelerator
 84//
 85
 86IDC_WINZJ ACCELERATORS
 87BEGIN
 88    VK_F1,          IDM_APP_INFO,           VIRTKEY, NOINVERT
 89    "1",            IDM_ICON_1,             VIRTKEY, CONTROL, NOINVERT
 90    "2",            IDM_ICON_2,             VIRTKEY, CONTROL, NOINVERT
 91    "3",            IDM_ICON_3,             VIRTKEY, CONTROL, NOINVERT
 92    "1",            IDM_SHOW_1,             VIRTKEY, SHIFT, CONTROL, NOINVERT
 93    "2",            IDM_SHOW_2,             VIRTKEY, SHIFT, CONTROL, NOINVERT
 94    "3",            IDM_SHOW_3,             VIRTKEY, SHIFT, CONTROL, NOINVERT
 95    "4",            IDM_SHOW_4,             VIRTKEY, SHIFT, CONTROL, NOINVERT
 96END
 97
 98
 99#ifdef APSTUDIO_INVOKED
100/////////////////////////////////////////////////////////////////////////////
101//
102// TEXTINCLUDE
103//
104
1051 TEXTINCLUDE 
106BEGIN
107    "resource.h\0"
108END
109
1102 TEXTINCLUDE 
111BEGIN
112    "#ifndef APSTUDIO_INVOKED\r\n"
113    "#include ""targetver.h""\r\n"
114    "#endif\r\n"
115    "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
116    "#include ""windows.h""\r\n"
117    "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
118    "\0"
119END
120
1213 TEXTINCLUDE 
122BEGIN
123    "\r\n"
124    "\0"
125END
126
127#endif    // APSTUDIO_INVOKED
128
129
130/////////////////////////////////////////////////////////////////////////////
131//
132// String Table
133//
134
135STRINGTABLE
136BEGIN
137    IDS_APP_TITLE           "WinZJ——第二次上機(jī)練習(xí)"
138    IDC_WINZJ               "WINZJ"
139END
140
141#endif    // English (United States) resources
142/////////////////////////////////////////////////////////////////////////////
143
144
145
146#ifndef APSTUDIO_INVOKED
147/////////////////////////////////////////////////////////////////////////////
148//
149// Generated from the TEXTINCLUDE 3 resource.
150//
151
152
153/////////////////////////////////////////////////////////////////////////////
154#endif    // not APSTUDIO_INVOKED
155
156


resource.h
 1//{{NO_DEPENDENCIES}}
 2// Microsoft Visual C++ generated include file.
 3// Used by WinZJ.rc
 4//
 5#define IDC_MYICON                      2
 6#define IDS_APP_TITLE                   103
 7#define IDM_EXIT                        105
 8#define IDI_WINZJ                       107
 9#define IDC_WINZJ                       109
10#define IDR_MAINFRAME                   128
11#define IDI_ICON_OTHER                  129
12#define IDI_ICON_OTHER2                 130
13#define IDM_APP_INFO                    32771
14#define IDM_SHOW_1                      32774
15#define IDM_SHOW_2                      32775
16#define IDM_SHOW_3                      32776
17#define IDM_SHOW_4                      32777
18#define IDM_ICON_1                      32784
19#define IDM_ICON_2                      32785
20#define IDM_ICON_3                      32786
21#define IDC_STATIC                      -1
22
23// Next default values for new objects
24// 
25#ifdef APSTUDIO_INVOKED
26#ifndef APSTUDIO_READONLY_SYMBOLS
27#define _APS_NO_MFC                     1
28#define _APS_NEXT_RESOURCE_VALUE        133
29#define _APS_NEXT_COMMAND_VALUE         32794
30#define _APS_NEXT_CONTROL_VALUE         1000
31#define _APS_NEXT_SYMED_VALUE           110
32#endif
33#endif
34


targetver.h
1#pragma once
2
3// Including SDKDDKVer.h defines the highest available Windows platform.
4
5// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
6// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
7
8#include <SDKDDKVer.h>
9


stdafx.h
 1// stdafx.h : include file for standard system include files,
 2// or project specific include files that are used frequently, but
 3// are changed infrequently
 4//
 5
 6#pragma once
 7
 8#include "targetver.h"
 9
10#define WIN32_LEAN_AND_MEAN             // Exclude rarely-used stuff from Windows headers
11// Windows Header Files:
12#include <windows.h>
13
14// C RunTime Header Files
15#include <stdlib.h>
16#include <malloc.h>
17#include <memory.h>
18#include <tchar.h>
19
20
21// TODO: reference additional headers your program requires here
22


stdafx.cpp
1// stdafx.cpp : source file that includes just the standard includes
2// WinZJ.pch will be the pre-compiled header
3// stdafx.obj will contain the pre-compiled type information
4
5#include "stdafx.h"
6
7// TODO: reference any additional headers you need in STDAFX.H
8// and not in this file
9

posted on 2011-03-30 01:28 coreBugZJ 閱讀(1535) 評論(0)  編輯 收藏 引用 所屬分類: 課內(nèi)作業(yè)

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久精品日韩| 狂野欧美激情性xxxx| 一本一本久久a久久精品牛牛影视| 国产精品久久久久久久7电影| 免费不卡在线观看| 久久久久.com| 先锋影院在线亚洲| 亚洲午夜久久久久久尤物| 牛牛国产精品| 欧美激情综合色| 久久字幕精品一区| 欧美中文在线免费| 亚洲国产成人午夜在线一区| 亚洲国产精品高清久久久| 久久久久久自在自线| 亚洲男同1069视频| 中文日韩在线| 久久国产66| 久久久精品国产免费观看同学| 欧美在线观看你懂的| 性欧美办公室18xxxxhd| 亚洲视频在线视频| 老司机午夜精品| 亚洲精品字幕| 亚洲视频二区| 午夜免费在线观看精品视频| 久久资源av| 欧美刺激性大交免费视频 | 亚洲欧美成人一区二区在线电影 | 国产拍揄自揄精品视频麻豆| 欧美性猛片xxxx免费看久爱| 国产精品不卡在线| 尤物网精品视频| 亚洲三级观看| 亚洲一区二区三区中文字幕在线| 国产精品久久毛片a| 国产视频不卡| 亚洲国产婷婷综合在线精品 | 国内一区二区三区| 在线激情影院一区| 欧美一区二区黄| 免费观看久久久4p| 亚洲狼人综合| 99视频精品全部免费在线| 久久精品亚洲国产奇米99| 欧美ed2k| 国产精品亚洲а∨天堂免在线| 亚洲精品乱码久久久久久蜜桃91| 亚洲亚洲精品在线观看| 久久久在线视频| 亚洲午夜精品| 久久综合亚州| 国产精品乱码一区二三区小蝌蚪| 国产精品视频网址| 日韩视频永久免费观看| 欧美综合第一页| 亚洲黄色片网站| 久久综合给合久久狠狠色| 欧美日韩一区二区免费视频| 国产一区二区无遮挡| 欧美在线高清视频| 欧美激情综合五月色丁香小说| 一区二区三区在线看| 欧美专区在线播放| 欧美aaa级| 欧美午夜大胆人体| 一区二区三区|亚洲午夜| 久久精品99国产精品| 亚洲国产一区在线观看| 久久中文久久字幕| 国产欧美日韩一区二区三区在线观看 | 久久婷婷久久| 在线亚洲精品| 国产精品日韩在线观看| 亚洲美女在线国产| 美女诱惑黄网站一区| 亚洲片在线资源| 欧美日韩卡一卡二| 亚洲欧洲精品一区二区三区| 两个人的视频www国产精品| 久久久精品999| 国产一区二区久久久| 亚洲专区欧美专区| 亚洲美女性视频| 国产精品自拍小视频| 亚洲一区二区免费看| 亚洲精品久久久久久一区二区 | 最新成人在线| 欧美日韩性生活视频| 日韩视频精品在线| 亚洲人成在线播放网站岛国| 国产精品家教| 午夜亚洲一区| 亚洲欧美日韩一区二区| 尤物精品国产第一福利三区| 蜜桃av噜噜一区| 久久免费一区| 国产一区二区三区无遮挡| 欧美承认网站| 欧美精品一区二区精品网| 99国产一区| 久久国产精品99国产精| 原创国产精品91| 欧美福利视频在线| 欧美性事在线| 久久精品一区二区三区中文字幕| 欧美中文字幕久久| 国产精品草莓在线免费观看| 欧美在线3区| 欧美伊人精品成人久久综合97| 亚洲精品精选| 亚洲视频免费观看| 国内精品久久久久久久影视麻豆| 亚洲国产成人高清精品| 欧美美女bbbb| 久久国产主播| 免费欧美日韩| 亚洲伦伦在线| 欧美一区二区视频97| 激情综合色丁香一区二区| 欧美国产日韩亚洲一区| 国产精品啊啊啊| 亚洲免费视频在线观看| 久久av老司机精品网站导航| 91久久久亚洲精品| 欧美亚洲视频在线观看| 亚洲日本激情| 亚洲欧美精品在线| 欧美精品www在线观看| 老司机午夜精品视频在线观看| 欧美大片一区二区三区| 性色av一区二区三区| 欧美伦理影院| 麻豆精品国产91久久久久久| 欧美日本一区二区三区| 久久亚洲综合色| 欧美日韩一区二区三区四区在线观看| 欧美在线一二三四区| 亚洲国产成人久久| 精品1区2区3区4区| 一区二区高清在线| 国产日韩欧美视频| 亚洲女与黑人做爰| 日韩视频永久免费| 久久精品国产v日韩v亚洲| 久久久久国产一区二区三区| 欧美日韩精品一区二区在线播放| 久久久久99| 欧美精品在线观看| 欧美激情一区二区三区成人 | 国产嫩草一区二区三区在线观看 | 欧美自拍偷拍午夜视频| 欧美一区免费视频| 欧美视频中文一区二区三区在线观看| 亚洲国产cao| 亚洲美女毛片| 国产精品高清在线观看| 亚洲性感美女99在线| 欧美在线视频一区二区三区| 国产一区二区三区日韩欧美| 久久久www成人免费精品| 免费日韩成人| 一区电影在线观看| 国产精品久久国产愉拍 | 蜜臀a∨国产成人精品| 亚洲欧洲精品一区二区精品久久久| 亚洲欧洲三级| 欧美日韩在线视频首页| 亚洲曰本av电影| 免费91麻豆精品国产自产在线观看| 亚洲国产精品一区二区尤物区| 欧美精品一级| 欧美在线二区| 亚洲精品国精品久久99热| 午夜精彩视频在线观看不卡 | 亚洲高清不卡av| 最新国产の精品合集bt伙计| 欧美久久久久久久久久| 亚洲无线一线二线三线区别av| 久久久综合免费视频| 日韩视频在线播放| 国产视频一区二区三区在线观看| 久久久久久夜| 一区二区三区精密机械公司| 久久人人爽人人爽| 一区二区三区视频在线| 国内一区二区三区在线视频| 欧美日韩少妇| 欧美在线综合视频| 亚洲激情在线视频| 久久大逼视频| 欧美性生交xxxxx久久久| 精品电影在线观看| 免费成人av资源网| 亚洲国产成人精品视频| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 在线午夜精品自拍| 欧美插天视频在线播放| 欧美一区二区三区婷婷月色| 日韩亚洲视频在线|