日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

API之子窗口创建 (转)

發(fā)布時間:2023/12/4 编程问答 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 API之子窗口创建 (转) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

子窗口的創(chuàng)建非常非常重要

步驟:1、新建窗口類,在窗口類中指名對應(yīng)的自定義的窗口過程。窗口類類名要唯一,它?????

?????????是各窗口類相互區(qū)別的標識。注意,類名或為靜態(tài)變量,或為全局變量,因為程

?????????序隨時都用他們。

??????2、創(chuàng)建窗體時,指定其風(fēng)格之一為WS_CHILD,?指定其父窗口句柄,得到父窗體實

?????????例句柄,并賦給子窗體。

??????3、在主窗體的create消息中,創(chuàng)建0尺寸的子窗體,主窗體的size消息中,利用

????????movewindow函數(shù),重設(shè)窗體大小,重置窗體位置。

實例為CTRL002,CTRL003

實例CTRL001單擊按鈕顯示對應(yīng)文字

子窗口向父窗口發(fā)送消息

CreateWindow呼叫使用下面這些參數(shù):

Class?name(類別名稱)

Window?text(窗口文字)

Window?style(窗口樣式)

x?position(x位置)

y?position(y位置)

Width(寬度)

Height(高度)

Parent?window(父窗口)

Child?window?ID(子窗口ID)

Instance?handle(執(zhí)行實體句柄

)Extra?parameters(附加參數(shù))

TEXT?("button")

button[i].szText

WS_CHILD|WS_VISIBLE|button[i].iStyle

cxChar

cyChar?*?(1?+?2?*?i)

20?*?xChar

7?*?cyChar?/?4

hwnd

(HMENU)i

((LPCREATESTRUCT)?lParam)?->?hInstance

NULL

?

?

說明:從WM_COMMAND區(qū)別出單擊了哪個按鈕。通過子窗口的ID號來區(qū)分。每個子窗口在創(chuàng)建時,就已經(jīng)分配了一個唯一的ID號。ID號包含在WM_COMMAND消息中wParam的低字節(jié)位。用LOWORD()宏來獲取ID。

??????“用鼠標單擊按鈕時,子窗口控制就向其父窗口發(fā)送一個WM_COMMAND消息。...捕獲WM_COMMAND消息....”

???????“LOWORD(wParam)???子窗口ID

?????????HIWORD(wParam)????通知碼

?????????lParam??????????????子窗口句柄”

?

[cpp] view plaincopyprint?
  • #include?<windows.h> ??
  • int?iFlag=1;//記錄被單擊按鈕的ID ??
    • //定義一個按鈕類型結(jié)構(gòu)體,方便創(chuàng)建按鈕,提高代碼復(fù)用率 ??
    • struct??
    • {??
    • ?????int?????iStyle?;??
    • ?????TCHAR?*?szText?;??
    • }??
    • button[]?=??
    • {??
    • ?????BS_PUSHBUTTON,??????TEXT?("PUSHBUTTON"),??
    • ?????BS_DEFPUSHBUTTON,???TEXT?("DEFPUSHBUTTON"),??
    • ?????BS_CHECKBOX,????????TEXT?("CHECKBOX"),???
    • ?????BS_AUTOCHECKBOX,????TEXT?("AUTOCHECKBOX"),??
    • ?????BS_RADIOBUTTON,?????TEXT?("RADIOBUTTON"),??
    • ?????BS_3STATE,??????????TEXT?("3STATE"),??
    • ?????BS_AUTO3STATE,??????TEXT?("AUTO3STATE"),??
    • ?????BS_GROUPBOX,????????TEXT?("GROUPBOX"),??
    • ?????BS_AUTORADIOBUTTON,?TEXT?("AUTORADIO"),??
    • ?????BS_OWNERDRAW,???????TEXT?("OWNERDRAW")??
    • }?;??
    • #define?NUM?(sizeof?button?/?sizeof?button[0]) ??
    • LRESULT?CALLBACK?WndProc?(HWND,?UINT,?WPARAM,?LPARAM)?;??
    • int?WINAPI?WinMain?(HINSTANCE?hInstance,?HINSTANCE?hPrevInstance,??
    • ????????????????????PSTR?szCmdLine,?int?iCmdShow)??
    • {??
    • ?????static?TCHAR?szAppName[]?=?TEXT?("BtnLook")?;??
    • ?????HWND?????????hwnd?;??
    • ?????MSG??????????msg?;??
    • ?????WNDCLASS?????wndclass?;??
    • ???????
    • ?????wndclass.style?????????=?CS_HREDRAW?|?CS_VREDRAW?;??
    • ?????wndclass.lpfnWndProc???=?WndProc?;??
    • ?????wndclass.cbClsExtra????=?0?;??
    • ?????wndclass.cbWndExtra????=?0?;??
    • ?????wndclass.hInstance?????=?hInstance?;??
    • ?????wndclass.hIcon?????????=?LoadIcon?(NULL,?IDI_APPLICATION)?;??
    • ?????wndclass.hCursor???????=?LoadCursor?(NULL,?IDC_ARROW)?;??
    • ?????wndclass.hbrBackground?=?(HBRUSH)?GetStockObject?(WHITE_BRUSH)?;??
    • ?????wndclass.lpszMenuName??=?NULL?;??
    • ?????wndclass.lpszClassName?=?szAppName?;??
    • ???????
    • ?????if?(!RegisterClass?(&wndclass))??
    • ?????{??
    • ??????????MessageBox?(NULL,?TEXT?("This?program?requires?Windows?NT!"),??
    • ??????????????????????szAppName,?MB_ICONERROR)?;??
    • ??????????return?0?;??
    • ?????}??
    • ???????
    • ?????hwnd?=?CreateWindow?(szAppName,?TEXT?("Button?Look"),??
    • ??????????????????????????WS_OVERLAPPEDWINDOW,??
    • ??????????????????????????CW_USEDEFAULT,?CW_USEDEFAULT,??
    • ??????????????????????????CW_USEDEFAULT,?CW_USEDEFAULT,??
    • ??????????????????????????NULL,?NULL,?hInstance,?NULL)?;??
    • ???????
    • ?????ShowWindow?(hwnd,?iCmdShow)?;??
    • ?????UpdateWindow?(hwnd)?;??
    • ???????
    • ?????while?(GetMessage?(&msg,?NULL,?0,?0))??
    • ?????{??
    • ??????????TranslateMessage?(&msg)?;??
    • ??????????DispatchMessage?(&msg)?;??
    • ?????}??
    • ?????return?msg.wParam?;??
    • }??
    • LRESULT?CALLBACK?WndProc?(HWND?hwnd,?UINT?message,?WPARAM?wParam,?LPARAM?lParam)??
    • {??
    • ?????static?HWND??hwndButton[NUM]?;//句柄是一個數(shù)值,所以可以定義成數(shù)組形式 ??
    • ?????static?int???cxChar,?cyChar?;??
    • ??????
    • ?????int?iLength=0;??
    • ?????int??????????i?;??
    • ??????
    • ???????
    • ?????HDC??????????hdc?;??
    • ?????PAINTSTRUCT??ps?;??
    • ???????
    • ???????
    • ?????switch?(message)??
    • ?????{??
    • ?????case?WM_CREATE?:??
    • ??????????cxChar?=?LOWORD?(GetDialogBaseUnits?())?;??
    • ??????????cyChar?=?HIWORD?(GetDialogBaseUnits?())?;??
    • ????????????
    • //得用?button[]?,簡化創(chuàng)建一系列按鈕過程,這就是編輯的藝術(shù) ??
    • ??????????for?(i?=?0?;?i?<?NUM-1?;?i++)??
    • ???????????????hwndButton[i]?=?CreateWindow?(?TEXT("button"),???
    • ???????????????????????????????????button[i].szText,??
    • ???????????????????????????????????WS_CHILD?|?WS_VISIBLE?|?button[i].iStyle,??
    • ???????????????????????????????????cxChar,?cyChar?*?(1?+?2?*?i),??
    • ???????????????????????????????????20?*?cxChar,?7?*?cyChar?/?4,??
    • ???????????????????????????????????hwnd,?(HMENU)?i,??
    • ???????????????????????????????????((LPCREATESTRUCT)?lParam)->hInstance,?NULL)?;??
    • ???????????????????????????????????//((HMENU)?i),為子窗口指定唯一的ID號。按鈕是子窗口的一種。該參數(shù)通常用于指定程序的菜單,因此子窗口ID必須被強制轉(zhuǎn)換為HMENU ??
    • ??????
    • ????????????/*?hwndButton[9]?=?CreateWindow?(?TEXT("button"),??
    • ???????????????????????????????????button[9].szText,?
    • ???????????????????????????????????WS_CHILD?|?WS_VISIBLE?|?button[9].iStyle,?
    • ???????????????????????????????????cxChar,?cyChar?*?(1?+?2?*?9),?
    • ???????????????????????????????????20?*?cxChar,?7?*?cyChar?/?4,?
    • ???????????????????????????????????hwnd,?(HMENU)?9,?
    • ???????????????????????????????????((LPCREATESTRUCT)?lParam)->hInstance,?NULL)?;?
    • ?????????????*這種按鈕,會不斷地觸發(fā)WM_COMMAND消息,不斷地調(diào)用WM_COMMAND中的InvalidateRect,?
    • ??????????????使客戶區(qū)不斷更新,出現(xiàn)閃爍現(xiàn)象。?
    • ????????????*/??
    • ??????????return?0?;??
    • ?????case?WM_PAINT?:??
    • ??????????//InvalidateRect?(hwnd,?&rect,?TRUE)?; ??
    • ????????????
    • ??????????hdc?=?BeginPaint?(hwnd,?&ps)?;??
    • ??????????//為舉例方便起見,將窗口ID號數(shù)值大小順序設(shè)定成自定義按鈕結(jié)構(gòu)體的順序 ??
    • ??????????TextOut(hdc,300,200,button[iFlag].szText,lstrlen(button[iFlag].szText));??
    • ??????????EndPaint?(hwnd,?&ps)?;??
    • ??????????return?0?;??
    • ?????case?WM_DRAWITEM?:??
    • ?????case?WM_COMMAND?:??
    • ????????????
    • ??????????hdc?=?GetDC?(hwnd)?;??
    • ??????????//得到子窗口的ID號 ??
    • ??????????iFlag=LOWORD(wParam);//LOWORD=LOW?WORD,HIWORD=HIGH?WORD ??
    • ????????????
    • ??????????ReleaseDC?(hwnd,?hdc)?;??
    • ??????????InvalidateRect?(hwnd,?NULL,?TRUE)?;//使客戶區(qū)失效,發(fā)出WM_PAINT消息,導(dǎo)致重繪發(fā)生 ??
    • ??????????return?0;??
    • ?????case?WM_DESTROY?:??
    • ??????????PostQuitMessage?(0)?;??
    • ??????????return?0?;??
    • ?????}??
    • ?????return?DefWindowProc?(hwnd,?message,?wParam,?lParam)?;??
    • }??

    #include <windows.h> int iFlag=1;//記錄被單擊按鈕的ID //定義一個按鈕類型結(jié)構(gòu)體,方便創(chuàng)建按鈕,提高代碼復(fù)用率 struct { int iStyle ; TCHAR * szText ; } button[] = { BS_PUSHBUTTON, TEXT ("PUSHBUTTON"), BS_DEFPUSHBUTTON, TEXT ("DEFPUSHBUTTON"), BS_CHECKBOX, TEXT ("CHECKBOX"), BS_AUTOCHECKBOX, TEXT ("AUTOCHECKBOX"), BS_RADIOBUTTON, TEXT ("RADIOBUTTON"), BS_3STATE, TEXT ("3STATE"), BS_AUTO3STATE, TEXT ("AUTO3STATE"), BS_GROUPBOX, TEXT ("GROUPBOX"), BS_AUTORADIOBUTTON, TEXT ("AUTORADIO"), BS_OWNERDRAW, TEXT ("OWNERDRAW") } ; #define NUM (sizeof button / sizeof button[0]) LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT ("BtnLook") ; HWND hwnd ; MSG msg ; WNDCLASS wndclass ; wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hInstance = hInstance ; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; wndclass.lpszMenuName = NULL ; wndclass.lpszClassName = szAppName ; if (!RegisterClass (&wndclass)) { MessageBox (NULL, TEXT ("This program requires Windows NT!"), szAppName, MB_ICONERROR) ; return 0 ; } hwnd = CreateWindow (szAppName, TEXT ("Button Look"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL) ; ShowWindow (hwnd, iCmdShow) ; UpdateWindow (hwnd) ; while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; } return msg.wParam ; } LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { static HWND hwndButton[NUM] ;//句柄是一個數(shù)值,所以可以定義成數(shù)組形式 static int cxChar, cyChar ; int iLength=0; int i ; HDC hdc ; PAINTSTRUCT ps ; switch (message) { case WM_CREATE : cxChar = LOWORD (GetDialogBaseUnits ()) ; cyChar = HIWORD (GetDialogBaseUnits ()) ; //得用 button[] ,簡化創(chuàng)建一系列按鈕過程,這就是編輯的藝術(shù) for (i = 0 ; i < NUM-1 ; i++) hwndButton[i] = CreateWindow ( TEXT("button"), button[i].szText, WS_CHILD | WS_VISIBLE | button[i].iStyle, cxChar, cyChar * (1 + 2 * i), 20 * cxChar, 7 * cyChar / 4, hwnd, (HMENU) i, ((LPCREATESTRUCT) lParam)->hInstance, NULL) ; //((HMENU) i),為子窗口指定唯一的ID號。按鈕是子窗口的一種。該參數(shù)通常用于指定程序的菜單,因此子窗口ID必須被強制轉(zhuǎn)換為HMENU /* hwndButton[9] = CreateWindow ( TEXT("button"), button[9].szText, WS_CHILD | WS_VISIBLE | button[9].iStyle, cxChar, cyChar * (1 + 2 * 9), 20 * cxChar, 7 * cyChar / 4, hwnd, (HMENU) 9, ((LPCREATESTRUCT) lParam)->hInstance, NULL) ; *這種按鈕,會不斷地觸發(fā)WM_COMMAND消息,不斷地調(diào)用WM_COMMAND中的InvalidateRect, 使客戶區(qū)不斷更新,出現(xiàn)閃爍現(xiàn)象。 */ return 0 ; case WM_PAINT : //InvalidateRect (hwnd, &rect, TRUE) ; hdc = BeginPaint (hwnd, &ps) ; //為舉例方便起見,將窗口ID號數(shù)值大小順序設(shè)定成自定義按鈕結(jié)構(gòu)體的順序 TextOut(hdc,300,200,button[iFlag].szText,lstrlen(button[iFlag].szText)); EndPaint (hwnd, &ps) ; return 0 ; case WM_DRAWITEM : case WM_COMMAND : hdc = GetDC (hwnd) ; //得到子窗口的ID號 iFlag=LOWORD(wParam);//LOWORD=LOW WORD,HIWORD=HIGH WORD ReleaseDC (hwnd, hdc) ; InvalidateRect (hwnd, NULL, TRUE) ;//使客戶區(qū)失效,發(fā)出WM_PAINT消息,導(dǎo)致重繪發(fā)生 return 0; case WM_DESTROY : PostQuitMessage (0) ; return 0 ; } return DefWindowProc (hwnd, message, wParam, lParam) ; }

    ?

    ?

    ?

    實例CTRL002?利用多個靜態(tài)窗體繪制棋盤

    說明:1、窗體類別必需是static類,否則程序不能生成靜態(tài)窗體

    ??????2、利用GetWindowLong得到窗體實例句柄

    ??????3、HWND是數(shù)值類型,可以定義成數(shù)組

    ??????4、創(chuàng)建子窗體時,將大小設(shè)為0,以便重置

    ??????4、利用movewidow(...)函數(shù)重置靜態(tài)子窗體位置

    ?

    [cpp] view plaincopyprint?
  • #include?<windows.h> ??
  • LRESULT?CALLBACK?WndProc?(HWND,?UINT,?WPARAM,?LPARAM)?;??
  • int?WINAPI?WinMain?(HINSTANCE?hInstance,?HINSTANCE?hPrevInstance,??
  • ????????????????????PSTR?szCmdLine,?int?iCmdShow)??
  • {??
  • ?????static?TCHAR?szAppName[]?=?TEXT?("HelloWin")?;??
  • ?????HWND?????????hwnd?;??
  • ?????MSG??????????msg?;??
  • ?????WNDCLASS?????wndclass?;??
  • ?????wndclass.style?????????=?CS_HREDRAW?|?CS_VREDRAW?;??
  • ?????wndclass.lpfnWndProc???=?WndProc?;??
  • ?????wndclass.cbClsExtra????=?0?;??
  • ?????wndclass.cbWndExtra????=?0?;??
  • ?????wndclass.hInstance?????=?hInstance?;??
  • ?????wndclass.hIcon?????????=?LoadIcon?(NULL,?IDI_APPLICATION)?;??
  • ?????wndclass.hCursor???????=?LoadCursor?(NULL,?IDC_ARROW)?;??
  • ?????wndclass.hbrBackground?=?CreateSolidBrush?(0)?;//將背景色設(shè)成黑色 ??
  • ?????wndclass.lpszMenuName??=?NULL?;??
  • ?????wndclass.lpszClassName?=?szAppName?;??
  • ?????if?(!RegisterClass?(&wndclass))??
  • ?????{??
  • ??????????MessageBox?(NULL,?TEXT?("This?program?requires?Windows?NT!"),???
  • ??????????????????????szAppName,?MB_ICONERROR)?;??
  • ??????????return?0?;??
  • ?????}??
  • ?????hwnd?=?CreateWindow?(szAppName,??????????????????//?window?class?name ??
  • ??????????????????????????TEXT?("Chess"),?//?window?caption ??
  • ??????????????????????????WS_OVERLAPPEDWINDOW?&?~WS_MAXIMIZEBOX???
  • ??????????????????????????&?~WS_THICKFRAME?&?~?WS_MINIMIZEBOX????//去除max、minbox,禁止改變窗體大小 ??
  • ??????????????????????????,????????//?window?style ??
  • ??????????????????????????CW_USEDEFAULT,??????????????//?initial?x?position ??
  • ??????????????????????????CW_USEDEFAULT,??????????????//?initial?y?position ??
  • ??????????????????????????CW_USEDEFAULT,??????????????//?initial?x?size ??
  • ??????????????????????????CW_USEDEFAULT,??????????????//?initial?y?size ??
  • ??????????????????????????NULL,???????????????????????//?parent?window?handle ??
  • ??????????????????????????NULL,???????????????????????//?window?menu?handle ??
  • ??????????????????????????hInstance,??????????????????//?program?instance?handle ??
  • ??????????????????????????NULL)?;?????????????????????//?creation?parameters ??
  • ???????
  • ?????ShowWindow?(hwnd,?iCmdShow)?;??
  • ?????UpdateWindow?(hwnd)?;??
  • ???????
  • ?????while?(GetMessage?(&msg,?NULL,?0,?0))??
  • ?????{??
  • ??????????TranslateMessage?(&msg)?;??
  • ??????????DispatchMessage?(&msg)?;??
  • ?????}??
  • ?????return?msg.wParam?;??
  • }??
  • LRESULT?CALLBACK?WndProc?(HWND?hwnd,?UINT?message,?WPARAM?wParam,?LPARAM?lParam)??
  • {??
  • ???????
  • ????? ??
  • ?????static?HWND?hwndRect[32];??
  • ??????
  • ?????HINSTANCE?hinstance;??
  • ?????int???????iw,ik,im,cxClient,?cyClient?;//不能將它們定義在switch中 ??
  • ?????switch?(message)??
  • ?????{??
  • ?????case?WM_CREATE:??
  • ?????????????
  • ?????????hinstance=(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE);??
  • ?????????//得到程序的實例 ??
  • ???????????
  • ?????????//窗體類別必需是static類,否則程序不能生成靜態(tài)窗體。 ??
  • ?????????for(iw=0;iw<32;iw++)??
  • ?????????{??
  • ?????????????????hwndRect[iw]=CreateWindow(TEXT("STATIC"),NULL,??
  • ???????????????????????????????????????????WS_CHILD|WS_VISIBLE|SS_WHITERECT,?//將static?窗體背景色設(shè)成白色,好像只能設(shè)成黑/白彩色 ??
  • ???????????????????????????????????????????0,0,0,0,??
  • ???????????????????????????????????????????hwnd,(HMENU)iw,??
  • ???????????????????????????????????????????hinstance,??
  • ???????????????????????????????????????????NULL??
  • ???????????????????????????????????????????);??
  • ?????????}??
  • ??????????MoveWindow(hwnd,0,0,300,300,TRUE);??
  • ??????????return?0?;??
  • ?????case?WM_SIZE:??
  • ??????????//MoveWindow(hwnd,0,0,400,400,TRUE); ??
  • ??????????cxClient?=?LOWORD?(lParam)?;//得到客戶區(qū)寬度 ??
  • ??????????cyClient?=?HIWORD?(lParam)?;//得到客戶區(qū)高度 ??
  • ????????????
  • ??????????//SetRect(&rcColor,icxClient/2,0,icxClient,icyClient); ??
  • ??????????/*?
  • ??????????//歸納法?
  • ??????????for(ik=0;ik<4;ik++)?
  • ??????????????//for(im=0;im<4;im++)?
  • ??????????MoveWindow?(hwndRect[ik],?(0%2+ik)*cxClient/4,?0,?cxClient/8,?cyClient/8,?TRUE)?;?
  • ??????????for(ik=0;ik<4;ik++)?
  • ??????????MoveWindow?(hwndRect[ik+4],?(1%2)*cxClient/8+ik*cxClient/4,?cyClient/8,?cxClient/8,?cyClient/8,?TRUE)?;?
  • ??????????*/??
  • ??????????MoveWindow(hwnd,200,100,300,300,TRUE);??
  • ??????????for(ik=0;ik<4;ik++)??
  • ??????????????for(im=0;im<8;im++)??
  • ??????????????????MoveWindow?(hwndRect[ik+4*im],?(im%2)*cxClient/8+ik*cxClient/4,?im*cyClient/8,?cxClient/8,?cyClient/8,?TRUE)?;??
  • ??????????return?0;??
  • ????????????
  • ????????????
  • ?????case?WM_DESTROY:??
  • ??????????PostQuitMessage?(0)?;??
  • ??????????return?0?;??
  • ?????}??
  • ?????return?DefWindowProc?(hwnd,?message,?wParam,?lParam)?;??
  • }??
  • #include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT ("HelloWin") ; HWND hwnd ; MSG msg ; WNDCLASS wndclass ; wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hInstance = hInstance ; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; wndclass.hbrBackground = CreateSolidBrush (0) ;//將背景色設(shè)成黑色 wndclass.lpszMenuName = NULL ; wndclass.lpszClassName = szAppName ; if (!RegisterClass (&wndclass)) { MessageBox (NULL, TEXT ("This program requires Windows NT!"), szAppName, MB_ICONERROR) ; return 0 ; } hwnd = CreateWindow (szAppName, // window class name TEXT ("Chess"), // window caption WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX & ~WS_THICKFRAME & ~ WS_MINIMIZEBOX //去除max、minbox,禁止改變窗體大小 , // window style CW_USEDEFAULT, // initial x position CW_USEDEFAULT, // initial y position CW_USEDEFAULT, // initial x size CW_USEDEFAULT, // initial y size NULL, // parent window handle NULL, // window menu handle hInstance, // program instance handle NULL) ; // creation parameters ShowWindow (hwnd, iCmdShow) ; UpdateWindow (hwnd) ; while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; } return msg.wParam ; } LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { static HWND hwndRect[32]; HINSTANCE hinstance; int iw,ik,im,cxClient, cyClient ;//不能將它們定義在switch中 switch (message) { case WM_CREATE: hinstance=(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE); //得到程序的實例 //窗體類別必需是static類,否則程序不能生成靜態(tài)窗體。 for(iw=0;iw<32;iw++) { hwndRect[iw]=CreateWindow(TEXT("STATIC"),NULL, WS_CHILD|WS_VISIBLE|SS_WHITERECT, //將static 窗體背景色設(shè)成白色,好像只能設(shè)成黑/白彩色 0,0,0,0, hwnd,(HMENU)iw, hinstance, NULL ); } MoveWindow(hwnd,0,0,300,300,TRUE); return 0 ; case WM_SIZE: //MoveWindow(hwnd,0,0,400,400,TRUE); cxClient = LOWORD (lParam) ;//得到客戶區(qū)寬度 cyClient = HIWORD (lParam) ;//得到客戶區(qū)高度 //SetRect(&rcColor,icxClient/2,0,icxClient,icyClient); /* //歸納法 for(ik=0;ik<4;ik++) //for(im=0;im<4;im++) MoveWindow (hwndRect[ik], (0%2+ik)*cxClient/4, 0, cxClient/8, cyClient/8, TRUE) ; for(ik=0;ik<4;ik++) MoveWindow (hwndRect[ik+4], (1%2)*cxClient/8+ik*cxClient/4, cyClient/8, cxClient/8, cyClient/8, TRUE) ; */ MoveWindow(hwnd,200,100,300,300,TRUE); for(ik=0;ik<4;ik++) for(im=0;im<8;im++) MoveWindow (hwndRect[ik+4*im], (im%2)*cxClient/8+ik*cxClient/4, im*cyClient/8, cxClient/8, cyClient/8, TRUE) ; return 0; case WM_DESTROY: PostQuitMessage (0) ; return 0 ; } return DefWindowProc (hwnd, message, wParam, lParam) ; }

    ?

    ?

    運行結(jié)果如下圖

    ?

    [cpp] view plaincopyprint?
  • 實例CTRL003利用多個子窗口制做簡易五子棋??
  • #include?<windows.h> ??
  • LRESULT?CALLBACK?WndProc?(HWND,?UINT,?WPARAM,?LPARAM)?;//主窗口過程 ??
  • LRESULT?CALLBACK?ChessWndProc?(HWND,?UINT,?WPARAM,?LPARAM)?;//棋盤cell窗口過程 ??
  • TCHAR?szChdChess[]=TEXT("ChessPlane");??
  • #define?iRow?15 ??
  • #define?iColumn?15 ??
  • int?iFlag=0;??
  • int?iYN[iRow][iColumn];??
  • int?WINAPI?WinMain?(HINSTANCE?hInstance,?HINSTANCE?hPrevInstance,??
  • ????????????????????PSTR?szCmdLine,?int?iCmdShow)??
  • {??
  • ?????static?TCHAR?szAppName[]?=?TEXT?("MyCHess")?;//需用類名,故聲明為靜態(tài),也可聲明為全局變量 ??
  • ???????
  • ?????HWND?????????hwnd?;??
  • ?????MSG??????????msg?;??
  • ?????WNDCLASS?????wndclass?;?//主窗口類 ??
  • ?????WNDCLASS?????chd_chessclass;//棋盤子窗口類 ??
  • ?????WNDCLASS?????chd_stateclass;//狀態(tài)子窗口類,可以用wndclass類為模板,但這樣寫是為了明確過程,便于理解 ??
  • ?????//主窗口類 ??
  • ?????wndclass.style?????????=?CS_HREDRAW?|?CS_VREDRAW?;??
  • ?????wndclass.lpfnWndProc???=?WndProc?;??
  • ?????wndclass.cbClsExtra????=?0?;??
  • ?????wndclass.cbWndExtra????=?0?;??
  • ?????wndclass.hInstance?????=?hInstance?;??
  • ?????wndclass.hIcon?????????=?LoadIcon?(NULL,?IDI_APPLICATION)?;??
  • ?????wndclass.hCursor???????=?LoadCursor?(NULL,?IDC_ARROW)?;??
  • ?????wndclass.hbrBackground?=?(HBRUSH)?GetStockObject?(WHITE_BRUSH)?;??
  • ?????wndclass.lpszMenuName??=?NULL?;??
  • ?????wndclass.lpszClassName?=?szAppName?;??
  • ?????//棋盤子窗口類 ??
  • ?????chd_chessclass.style?????????=?CS_HREDRAW?|?CS_VREDRAW?;?//創(chuàng)建窗體是加子(WS_CHILDWINDOW)窗體風(fēng)格 ??
  • ?????chd_chessclass.lpfnWndProc???=?ChessWndProc?;?//修改項:換成指定的窗口過程 ??
  • ?????chd_chessclass.cbClsExtra????=?0?;??
  • ?????chd_chessclass.cbWndExtra????=?sizeof(long)?;??
  • ?????chd_chessclass.hInstance?????=?hInstance?;??
  • ?????chd_chessclass.hIcon?????????=?NULL;//修改項:不需要圖標,設(shè)為NULL ??
  • ?????chd_chessclass.hCursor???????=?LoadCursor?(NULL,?IDC_ARROW)?;??
  • ?????chd_chessclass.hbrBackground?=?(HBRUSH)?GetStockObject?(BLACK_BRUSH)?;//修改項:改為黑色 ??
  • ?????chd_chessclass.lpszMenuName??=?NULL?;??
  • ?????chd_chessclass.lpszClassName?=?szChdChess?;//修改項:修改類名,窗口類之間相互區(qū)分的標識 ??
  • ?????if?(!RegisterClass?(&wndclass))??
  • ?????{??
  • ??????????MessageBox?(NULL,?TEXT?("This?program?requires?Windows?NT!"),???
  • ??????????????????????szAppName,?MB_ICONERROR)?;??
  • ??????????return?0?;??
  • ?????}??
  • ?????RegisterClass(&chd_chessclass);//注冊自定義的窗口類 ??
  • ?????hwnd?=?CreateWindow?(szAppName,??????????????????//?window?class?name ??
  • ??????????????????????????TEXT?("SimpleChess"),?//?window?caption ??
  • ??????????????????????????WS_OVERLAPPEDWINDOW&?~WS_MAXIMIZEBOX???
  • ??????????????????????????&?~WS_THICKFRAME?&?~?WS_MINIMIZEBOX,????????//?window?style ??
  • ??????????????????????????CW_USEDEFAULT,??????????????//?initial?x?position ??
  • ??????????????????????????CW_USEDEFAULT,??????????????//?initial?y?position ??
  • ??????????????????????????CW_USEDEFAULT,??????????????//?initial?x?size ??
  • ??????????????????????????CW_USEDEFAULT,??????????????//?initial?y?size ??
  • ??????????????????????????NULL,???????????????????????//?parent?window?handle ??
  • ??????????????????????????NULL,???????????????????????//?window?menu?handle ??
  • ??????????????????????????hInstance,??????????????????//?program?instance?handle ??
  • ??????????????????????????NULL)?;?????????????????????//?creation?parameters ??
  • ???????
  • ???????
  • ?????ShowWindow?(hwnd,?iCmdShow)?;??
  • ?????UpdateWindow?(hwnd)?;??
  • ???????
  • ?????while?(GetMessage?(&msg,?NULL,?0,?0))??
  • ?????{??
  • ??????????TranslateMessage?(&msg)?;??
  • ??????????DispatchMessage?(&msg)?;??
  • ?????}??
  • ?????return?msg.wParam?;??
  • }??
  • LRESULT?CALLBACK?WndProc?(HWND?hwnd,?UINT?message,?WPARAM?wParam,?LPARAM?lParam)??
  • {??
  • ?????//需將子窗口句柄聲明為static或聲明為全局變量,否則新建的窗口,在下次窗口過程調(diào)用中會丟失。 ??
  • ?????static??HWND??hwndChess[iRow][iColumn];??
  • ?????HDC?????????hdc?;??
  • ?????PAINTSTRUCT?ps?;??
  • ?????RECT????????rect?;??
  • ?????int?ixclient,iyclient,ik,iw,ixtemp,iytemp;??
  • ???????
  • ?????switch?(message)??
  • ?????{??
  • ?????case?WM_CREATE:??
  • ???????????
  • ??????????//創(chuàng)建chesscell窗體,加上子窗體風(fēng)格,成為子窗體 ??
  • ?????????for(ik=0;ik<iRow;ik++)??
  • ?????????????for(iw=0;iw<iColumn;iw++)??
  • ?????????????{??
  • ?????????hwndChess[ik][iw]=CreateWindow?(szChdChess,?NULL,??
  • ??????????????????????????????WS_CHILDWINDOW?|?WS_VISIBLE,??
  • ??????????????????????????????0,?0,?0,?0,??
  • ??????????????????????????????hwnd,?(HMENU)(iw+ik*iColumn),??
  • ??????????????????????????????(HINSTANCE)?GetWindowLong?(hwnd,?GWL_HINSTANCE),??
  • ??????????????????????????????NULL)?;??
  • ?????????????}??
  • ??????????MoveWindow(hwnd,0,0,600,600,TRUE);??
  • ??????????return?0?;??
  • ????????????
  • ?????case?WM_PAINT:??
  • ??????????hdc?=?BeginPaint?(hwnd,?&ps)?;??
  • ??????????EndPaint?(hwnd,?&ps)?;??
  • ??????????return?0?;??
  • ?????case?WM_SIZE:??
  • ??????????ixclient=LOWORD(lParam);??
  • ??????????iyclient=HIWORD(lParam);??
  • ??????????ixtemp=ixclient/iRow;??
  • ??????????iytemp=iyclient/iColumn;??
  • ??????????//重設(shè)窗體大小,重置窗體位置 ??
  • ?????????for(ik=0;ik<iRow;ik++)??
  • ?????????????for(iw=0;iw<iColumn;iw++)??
  • ?????????????{??
  • ?????????????????MoveWindow(hwndChess[ik][iw],ixtemp*ik,iytemp*iw,ixtemp,iytemp,TRUE);//????????? ??
  • ?????????????}??
  • ????????????
  • ??????????return?0;??
  • ???????????
  • ?????case?WM_DESTROY:??
  • ??????????PostQuitMessage?(0)?;??
  • ??????????return?0?;??
  • ?????}??
  • ?????return?DefWindowProc?(hwnd,?message,?wParam,?lParam)?;??
  • }??
  • LRESULT?CALLBACK?ChessWndProc?(HWND?hwnd,?UINT?message,?WPARAM?wParam,?LPARAM?lParam)??
  • {??
  • ?????HDC?????????hdc?;??
  • ?????PAINTSTRUCT?ps?;??
  • ?????RECT????????rect?;??
  • ?????HBRUSH??????hChdBrush,holdBrush;??
  • ?????HBRUSH??????WorBBrush[2];??
  • ?????int?in=0;??
  • ???????
  • ?????switch?(message)??
  • ?????{??
  • ?????case?WM_CREATE:??
  • ??????????SetWindowLong(hwnd,0,0);//很有用的函數(shù),可以傳遞一些信息 ??
  • ??????????return?0?;??
  • ?????case?WM_LBUTTONDOWN?:??
  • ??????????iFlag=1^iFlag;//1是黑,0是白 ??
  • ??????????//iYN[ik][iw] ??
  • ??????????SetWindowLong(hwnd,0,1);??
  • ??????????InvalidateRect(hwnd,NULL,TRUE);//響應(yīng)單擊 ??
  • ??????????return?0;??
  • ??????
  • ?????case?WM_PAINT:??
  • ??????????hdc?=?BeginPaint?(hwnd,?&ps)?;????????????
  • ??????????hChdBrush=CreateSolidBrush(RGB(110,110,110));??
  • ??????????holdBrush=SelectObject(hdc,hChdBrush);??
  • ??????????GetClientRect?(hwnd,?&rect)?;????
  • ??????????//填充背景色 ??
  • ??????????FillRect(hdc,&rect,hChdBrush);??
  • ???
  • ??????????//畫網(wǎng)格 ??
  • ??????????MoveToEx(hdc,0,(rect.bottom-rect.top)/2,NULL);??
  • ??????????LineTo(hdc,rect.right,(rect.bottom-rect.top)/2);??
  • ??????????MoveToEx(hdc,(rect.right-rect.left)/2,0,NULL);??
  • ??????????LineTo(hdc,(rect.right-rect.left)/2,rect.bottom);??
  • ????????????
  • ??????????//畫棋子 ??
  • ??????????//創(chuàng)建黑、白兩個畫刷 ??
  • ??????????if(GetWindowLong(hwnd,0))??
  • ??????????{??
  • ??????????WorBBrush[0]=CreateSolidBrush(RGB(0,0,0));??
  • ??????????WorBBrush[1]=CreateSolidBrush(RGB(255,255,255));??
  • ??????????//畫黑或白棋子 ??
  • ??????????SelectObject(hdc,WorBBrush[iFlag]);??
  • ??????????Ellipse(hdc,0,0,rect.bottom,rect.right);??
  • ??????????DeleteObject(WorBBrush[0]);??
  • ??????????DeleteObject(WorBBrush[1]);??
  • ??????????}??
  • ??????????SelectObject(hdc,holdBrush);??
  • ??????????EndPaint?(hwnd,?&ps)?;??
  • ??????????return?0?;??
  • ????????????
  • ?????case?WM_DESTROY:??
  • ??????????DeleteObject(hChdBrush);??
  • ??????????PostQuitMessage?(0)?;??
  • ??????????return?0?;??
  • ?????}??
  • ?????return?DefWindowProc?(hwnd,?message,?wParam,?lParam)?;??
  • }??
  • 轉(zhuǎn)自(http://blog.csdn.net/dreamcs/article/details/3888323)
  • 轉(zhuǎn)載于:https://www.cnblogs.com/Fightingbirds/archive/2013/01/03/2843407.html

    總結(jié)

    以上是生活随笔為你收集整理的API之子窗口创建 (转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    欧美精品网站 | 91精品对白一区国产伦 | 在线观看国产一区 | 国产亚洲欧美精品久久久久久 | 精品国产91亚洲一区二区三区www | 久久97视频 | 狠狠88综合久久久久综合网 | 中文字幕美女免费在线 | 欧美精品久久久久久 | 色婷五月天 | 天天干人人| 欧美三级免费 | 亚洲久草网| 狠狠插天天干 | 四虎在线免费观看 | 国产亚洲一区二区在线观看 | 亚洲国产精品99久久久久久久久 | 92av视频 | 中文字幕国产一区 | 国产日韩亚洲 | 日韩电影在线一区二区 | 精品久久久久久亚洲综合网站 | 依人成人综合网 | 久久激情小说 | 99在线高清视频在线播放 | 夜夜嗨av色一区二区不卡 | 日本特黄一级片 | 成 人 黄 色 视频 免费观看 | 一区二区三区中文字幕在线观看 | 国产精品毛片一区二区 | 香蕉看片 | 奇米网网址 | 国产一级二级三级视频 | 亚洲在线高清 | 丁香色天天| 色99中文字幕 | 亚洲另类视频在线观看 | 99精品系列| 看片网站黄色 | 国产资源精品在线观看 | 婷婷六月久久 | 国产午夜精品福利视频 | 亚洲免费成人av电影 | www久久国产 | 日韩在线观看一区二区三区 | 丁香六月色 | 日韩剧情 | 国产精品mv在线观看 | 国产日韩亚洲 | 久久高清av| 亚洲成人精品国产 | 狠狠色丁香久久综合网 | 日本在线中文在线 | 欧美久久久久久久久久久 | 成 人 免费 黄 色 视频 | 西西4444www大胆视频 | 精品电影一区 | 九九视频网站 | 亚洲一区二区视频在线 | a级免费观看 | 国产三级av在线 | 亚洲国产综合在线 | 毛片一区二区 | 天天在线视频色 | 亚洲精品视频一 | 人人爽影院| 亚洲更新最快 | 亚洲最新av在线 | 欧美激情另类文学 | 成人在线免费视频 | 日本特黄一级片 | 亚洲国产网站 | 午夜视频亚洲 | 国产盗摄精品一区二区 | 91成人看片| 免费看黄在线看 | 久久久精品欧美一区二区免费 | 亚洲成人黄色av | 男女拍拍免费视频 | 欧美精品久久久久久久久老牛影院 | 亚洲精品午夜久久久 | 91看片淫黄大片在线播放 | 久久精品99北条麻妃 | 欧美极品一区二区三区 | 视频一区二区三区视频 | 在线免费精品视频 | 日韩综合视频在线观看 | 久久久久久久久久久久电影 | 狠狠gao | 中文字幕在线观看免费高清完整版 | 日本久久高清视频 | 国产亚洲精品精品精品 | 精品国产乱码久久久久久1区二区 | 99在线观看免费视频精品观看 | 久久天天操 | 日韩精品中文字幕在线观看 | 亚洲精品视频在线观看免费视频 | 黄色小说免费在线观看 | 97av视频在线 | 久久电影日韩 | 麻豆视频观看 | 免费a视频在线观看 | 久久国产亚洲视频 | av一级片网站 | 精品亚洲一区二区 | 2018好看的中文在线观看 | 亚洲一区二区三区四区精品 | 婷婷国产精品 | 伊人天天综合 | 成人午夜电影免费在线观看 | 天天色综合久久 | 国产美女视频网站 | 天天操天天爽天天干 | 欧美一区中文字幕 | 色永久免费视频 | 91一区二区三区久久久久国产乱 | 射射色| 欧美成人aa | 视频一区在线播放 | 国产精品视频免费看 | 91精品国产麻豆国产自产影视 | 久久精品视频国产 | 国产精品久久久久av免费 | 亚洲欧美日韩在线一区二区 | 一区二区三区在线影院 | 99热在线免费观看 | 在线精品亚洲 | 久久久久久久国产精品 | 欧美十八 | 波多野结衣一区二区三区中文字幕 | 999热视频| 黄色片视频免费 | av免费在线看网站 | 97夜夜澡人人双人人人喊 | 久久99亚洲精品久久 | 狠狠色丁香婷婷综合久小说久 | 91视频3p | 日韩欧美高清一区二区三区 | 美女网站免费福利视频 | 亚洲精品88欧美一区二区 | 一区久久久 | 国产精品久久久久久久久久东京 | 亚洲闷骚少妇在线观看网站 | 成人精品亚洲 | 五月天丁香综合 | 国产福利中文字幕 | 久久久久一区二区三区四区 | 亚洲欧洲国产视频 | 国产一区二区三区视频在线 | 亚洲欧美日韩国产精品一区午夜 | 国产最新视频在线观看 | 激情久久影院 | 久久9999久久 | 99久久精品一区二区成人 | 91黄色影视 | 国产精品毛片一区视频 | 日韩欧美一区二区三区视频 | 国产高清一 | 久久精品人人做人人综合老师 | 日韩一二三 | 91九色国产 | 亚洲精品国偷自产在线99热 | 亚洲一级久久 | 国产成人免费 | 欧美激情视频免费看 | 国产999精品视频 | 日韩欧美精选 | a视频免费在线观看 | 欧美日本一二三 | 久久国产高清视频 | 亚洲国产精品成人女人久久 | 亚洲第一区在线播放 | 欧美性久久久久久 | 亚洲精品一区二区三区高潮 | 亚洲 欧美 日韩 综合 | 夜夜爽夜夜操 | 狠狠色丁香久久婷婷综合五月 | 久久高清视频免费 | 天天色中文 | 麻豆91精品 | 亚洲色图色 | 国产又粗又猛又爽又黄的视频先 | 午夜精品一区二区国产 | 久久久久久久久久影院 | 日本精品视频在线 | 日本黄色大片免费 | 日韩高清不卡在线 | 国产91精品一区二区麻豆亚洲 | 色综合天天色 | 亚洲精品乱码久久久久久蜜桃动漫 | 99视频这里只有 | 丁香六月综合网 | 精品国产综合区久久久久久 | 久草视频视频在线播放 | 大片网站久久 | 国产黄色网 | 久草线 | 国产精品久久久久免费观看 | 96国产在线 | 色视频网站在线观看一=区 a视频免费在线观看 | 97在线观看免费观看 | 久久人人97超碰精品888 | 午夜视频黄 | 黄色免费网站下载 | 日韩一区正在播放 | 国产午夜av | 成人动态视频 | 久久久蜜桃一区二区 | 日本中文字幕在线视频 | 国产一区成人 | 日韩中文在线播放 | 激情五月开心 | 91视频久久久久 | 韩国精品视频在线观看 | 欧美在线视频不卡 | 在线а√天堂中文官网 | 麻豆国产电影 | 91在线看视频 | 色综合网在线 | 日日夜夜噜噜噜 | 亚洲国产欧洲综合997久久, | 国际av在线 | 中文字幕乱在线伦视频中文字幕乱码在线 | 97超碰免费在线观看 | 亚洲天堂网在线视频观看 | 九九日九九操 | 亚洲精品综合在线 | 国产精品美女久久久久久久网站 | 色综合久久五月 | 久久综合久久综合这里只有精品 | 成人黄色在线播放 | 8x成人在线| 欧美成人在线免费观看 | 久久精品看 | 国产又粗又硬又长又爽的视频 | 亚洲一区二区三区四区在线视频 | 国产精品久久一卡二卡 | 久久成人国产 | 激情五月婷婷综合网 | 五月激情亚洲 | 在线观看国产日韩欧美 | 日韩精品一区二区三区中文字幕 | 日本精品一区二区 | 久久精品二区 | 狠狠色丁香婷婷综合基地 | 亚洲精选在线 | 午夜精品影院 | 日批视频 | 五月激情片 | 亚洲精品欧美精品 | 国产高清中文字幕 | 久久精品123 | 天天舔天天搞 | 国产精品免费观看在线 | 色吊丝在线永久观看最新版本 | www夜夜操| 亚洲一区二区三区毛片 | 久久综合成人网 | 黄色片亚洲 | 波多野结衣日韩 | 成年人黄色在线观看 | 欧美 激情在线 | 伊人天堂网 | 中文字幕在线播放日韩 | 精品自拍sae8—视频 | 国产群p视频 | 草久久久 | 日韩中文字幕免费视频 | 在线三级播放 | 五月婷婷视频 | 国产精品视频免费观看 | 国产91综合一区在线观看 | 欧美一区二区精品在线 | 日韩有码在线观看视频 | 成人丝袜 | 久草国产视频 | 狠狠操操网 | 亚洲精品色视频 | 久久免费的视频 | 免费网站污 | 婷婷综合伊人 | 精品在线观看一区二区三区 | 国产精品美女在线 | 欧美激情操 | 91精品伦理 | 国产黄色精品视频 | 日韩在线视频看看 | 在线 精品 国产 | 日韩视频免费观看高清完整版在线 | 日韩精品欧美一区 | 97视频人人免费看 | 国产在线 一区二区三区 | 欧美日产在线观看 | 欧美亚洲另类在线视频 | 欧美日韩国产一区二区三区 | 欧美日韩一区三区 | 亚洲精品黄网站 | 免费在线国产黄色 | 99精品视频一区 | 亚洲九九爱 | 中文字幕中文字幕在线中文字幕三区 | 91亚洲综合 | 欧美在线观看视频一区二区三区 | 国内丰满少妇猛烈精品播放 | 日韩精品久久一区二区 | 麻豆视频免费在线观看 | 国产伦精品一区二区三区免费 | 午夜精品中文字幕 | 亚欧日韩av | 人人超碰免费 | 久久精品久久久久 | 久久亚洲视频 | 亚洲精品美女久久17c | 欧美另类交人妖 | 久久久久亚洲国产 | 一区二区三区日韩精品 | 在线中文字幕av观看 | 亚洲丁香久久久 | 香蕉97视频观看在线观看 | 久久这里只有精品1 | 悠悠av资源片 | 在线看v片成人 | 97免费公开视频 | 中文字幕 第二区 | 中文字幕91视频 | 精品国产成人在线 | 天天色天天射天天综合网 | 一区二区三区在线观看免费视频 | 少妇bbw揉bbb欧美 | 免费看高清毛片 | 国产日本亚洲 | 九九九热精品免费视频观看 | 久久久国产在线视频 | 天天操天天玩 | 成人午夜剧场在线观看 | 久久综合毛片 | 区一区二区三区中文字幕 | 久草免费看 | 日日干精品 | 高清免费av在线 | 亚洲激情 欧美激情 | 国产一级高清 | 精品国产一区二区久久 | 夜夜夜夜操 | 99re6热在线精品视频 | 国产中文字幕在线播放 | 园产精品久久久久久久7电影 | 一本到视频在线观看 | 国产在线免费 | 亚洲国产mv| 人人爽人人av | 国产精品精品国产色婷婷 | 国产精品福利在线观看 | 欧美一级视频免费 | 欧美在线观看视频一区二区 | 久久精品日产第一区二区三区乱码 | 日韩免费在线观看 | 日韩精品一区二区在线视频 | 激情av网 | 久久久影视 | 一级黄色片毛片 | 亚洲综合丁香 | 91看片淫黄大片在线播放 | 亚洲免费av在线播放 | 国产不卡在线看 | 国产精品剧情在线亚洲 | 在线视频久久 | 日本在线观看黄色 | 91丨九色丨91啦蝌蚪老版 | 综合激情伊人 | 国产精品久久久久aaaa九色 | 亚州激情视频 | 九九激情视频 | 欧美色插 | 91| 91黄在线看 | 最新久久免费视频 | 国产免费午夜 | 天天曰天天射 | 欧美色图东方 | 黄色在线网站噜噜噜 | 国产手机在线 | 久久不射影院 | 亚洲国产精品第一区二区 | 在线观看中文字幕亚洲 | 亚洲黄色网络 | 友田真希av| 欧美日韩精品网站 | 欧美另类交人妖 | 免费日韩 精品中文字幕视频在线 | 又黄又爽又无遮挡的视频 | a色视频| 国产色网| 国产成人精品一区二区三区 | 中文字幕 国产精品 | 欧美另类高清 | 日韩丝袜在线观看 | 综合在线亚洲 | 四虎国产免费 | 欧产日产国产69 | 日本中文字幕在线观看 | 一级性av | 国产精品久久久久三级 | 天天操天天舔天天干 | 久久久久久久久久久网站 | av中文字幕网站 | 开心综合网 | 日日干激情五月 | 亚洲在线色 | 久产久精国产品 | www.干| 特片网久久 | 久久国产网 | 99热高清 | 亚洲精品777 | 天天操天天干天天综合网 | 久久久精品国产一区二区三区 | 免费一级特黄毛大片 | 欧美日在线观看 | 久久久久国产一区二区三区四区 | 中文字幕在线观看视频一区二区三区 | 国产精品 日本 | 欧美成人精品在线 | 国产成人不卡 | 国产美女精品视频 | 亚洲三级黄色 | 免费亚洲黄色 | 亚洲精品女人 | www.天堂av | 欧美做受高潮电影o | 玖玖爱免费视频 | 国产精品久久久久av福利动漫 | 国产 在线观看 | 韩国在线一区 | 色综合天天狠天天透天天伊人 | 色网站在线免费观看 | 色五婷婷 | 91看成人| 亚洲高清视频在线观看 | 在线精品视频免费观看 | 毛片网站在线看 | 成人蜜桃| 国产又粗又硬又爽视频 | 天天操狠狠操网站 | 在线观看的av网站 | 国产一区高清在线观看 | 91九色国产蝌蚪 | 69av免费视频 | 日韩一区二区三区在线看 | 久久久精品二区 | 一区二区精品在线视频 | 天堂av影院 | 精品中文字幕在线 | 香蕉在线观看视频 | 麻豆高清免费国产一区 | 91免费日韩 | 91精品国产91久久久久福利 | 午夜三级大片 | 蜜桃麻豆www久久囤产精品 | 欧美日韩国产精品一区二区 | 97久久久免费福利网址 | 五月开心六月伊人色婷婷 | 人人爽人人乐 | 综合婷婷 | 亚洲精品午夜视频 | 久久艹国产视频 | 中文字幕 国产视频 | 色香蕉在线 | 亚洲精品国产精品国自产在线 | 久久久香蕉视频 | 天天爱天天操 | 天天婷婷| 中文字幕亚洲精品在线观看 | 在线观看日韩中文字幕 | 激情开心站 | 99久久99久久综合 | 亚洲激情综合 | 国产一区二区高清不卡 | 色91av| 丁香午夜婷婷 | 日韩黄色在线观看 | 国产精华国产精品 | 国产一级片久久 | 黄色三级免费观看 | 天天草天天干天天 | 国产亚洲精品久久久网站好莱 | 激情丁香月| 国产小视频在线播放 | 国产精品久久久久久久久久东京 | 午夜丰满寂寞少妇精品 | 久久久久久久久久久久电影 | 一区中文字幕电影 | 天天操天天干天天操天天干 | 狠狠综合久久 | 91福利视频免费观看 | 日韩动漫免费观看高清完整版在线观看 | 久久三级毛片 | 日韩在线高清免费视频 | 欧美亚洲国产精品久久高清浪潮 | 精品视频免费在线 | 成人免费在线播放视频 | 黄色av免费| 精品视频不卡 | 人人艹人人 | 狠狠色丁香婷婷综合橹88 | 成人中文字幕在线观看 | 久久成人在线视频 | 日本性视频 | 欧美激情精品久久久久久 | 91探花国产综合在线精品 | 亚洲精品在线免费播放 | 国内外成人在线 | 一区二区欧美激情 | 日韩视频一区二区在线 | 91在线看免费 | 国产成人综合精品 | 一级片视频免费观看 | 久久久久久久久久久久影院 | 国产精品毛片久久久久久 | 日韩电影一区二区三区在线观看 | 国产又粗又猛又黄又爽 | 日韩精品一区二区三区外面 | 欧美aaa一级| 成人久久综合 | 久久综合狠狠综合 | 久久精品—区二区三区 | 国产午夜精品av一区二区 | 在线看欧美| 99久久99久久 | 在线91播放 | 国产国产人免费人成免费视频 | 正在播放五月婷婷狠狠干 | 国产午夜一区二区 | 午夜久久久影院 | 97理论电影 | 日韩r级在线 | 在线观看你懂的网站 | 精品影院 | 日韩视频www | 国产五月 | 欧美aⅴ在线观看 | 91精品久| 97偷拍在线视频 | 首页av在线 | 天天干,天天操,天天射 | 久久久久中文 | 色悠悠久久综合 | 久久永久视频 | 99热 精品在线 | 在线观看国产一区 | 久久国产午夜精品理论片最新版本 | 99久热精品 | 国产午夜精品福利视频 | 91探花视频 | 欧美一进一出抽搐大尺度视频 | 久久公开视频 | 成人a免费 | 欧美一区在线看 | 综合av在线| 精品欧美一区二区在线观看 | 香蕉一区 | 中文字幕在线精品 | 久久伦理电影 | 国产成人一区三区 | 2023亚洲精品国偷拍自产在线 | 欧美日韩国产一区二区三区 | 夜夜躁狠狠躁日日躁视频黑人 | 香蕉久久久久久久 | 欧美黄色高清 | 综合久久影院 | 久久久观看 | 国产婷婷久久 | 91精品看片| 亚洲成人xxx | 九九热精 | 国产青草视频在线观看 | 99久久精品国产免费看不卡 | 欧美一级片在线观看视频 | 日韩免费在线观看 | 久久精品一区二区 | 一区免费视频 | 欧美日韩免费在线观看视频 | 天天操天天射天天插 | 国产精品成人国产乱 | 国产激情小视频在线观看 | 中文字幕日韩有码 | 成人中文字幕+乱码+中文字幕 | 精品国产一区二区三区久久久久久 | 少妇做爰k8经典 | 精品一区二区三区四区在线 | 久久综合国产伦精品免费 | 丁香五月缴情综合网 | 欧美日一级片 | 天天插天天狠 | 久久久久激情 | 三级黄色在线观看 | 亚洲免费av电影 | 国产免费观看视频 | 美女久久视频 | 99精品在线看| 久久国产手机看片 | 亚洲永久免费av | 亚洲国产大片 | 成人av片在线观看 | 五月婷婷六月综合 | 97超碰在线资源 | 激情九九 | 亚洲人成免费 | 亚洲麻豆精品 | 96国产在线 | 人人干在线观看 | 久久综合九色欧美综合狠狠 | 色综合久久久久综合体桃花网 | 成片免费观看视频大全 | 天天色天| 国产精品999久久久 久产久精国产品 | 99精品久久久久久久 | 99精品免费久久久久久久久日本 | 免费成人av在线看 | 亚洲精品va| 91激情视频在线 | 亚洲一区二区视频 | 天天干,狠狠干 | 91在线看视频 | 69绿帽绿奴3pvideos | 手机在线日韩视频 | 亚洲国产久 | 狠狠色噜噜狠狠 | av黄免费看| 成人网色 | 狠狠色综合网站久久久久久久 | 99视频在线免费播放 | 狠狠网亚洲精品 | a v在线观看 | 免费的黄色的网站 | 超碰在线观看97 | 久久精品伊人 | 国产一二区在线观看 | 亚洲精品国产电影 | 97超在线| 在线电影中文字幕 | 九九天堂| 久久精品视频在线观看免费 | 久久精品中文视频 | 午夜精品一区二区三区免费视频 | 九九综合九九综合 | 国产精品欧美一区二区三区不卡 | 成人一区二区三区中文字幕 | 三级免费黄 | 久久在线免费观看视频 | 99视频在线观看视频 | 午夜av不卡 | 92av视频 | 国产精品久久久久久a | 1024手机在线看 | 国产97色在线 | 免费三级骚 | 久久成人精品视频 | 97在线观视频免费观看 | 91色国产| 黄av资源| 成人在线免费视频观看 | 91完整版| 极品久久久久久久 | 中文字幕免费看 | a级国产片| 日韩高清不卡一区二区三区 | 久久综合久久综合九色 | 一本—道久久a久久精品蜜桃 | 九九免费在线观看 | 欧美色插 | 色狠狠综合 | 国产又粗又硬又爽视频 | 91九色视频国产 | 色欧美成人精品a∨在线观看 | 97免费中文视频在线观看 | 九九精品视频在线看 | 亚洲一区二区三区毛片 | 美女免费视频观看网站 | www好男人| 亚洲影院天堂 | 免费看三级 | 成人a毛片 | 精品视频99 | 精品国产欧美一区二区 | 欧美国产视频在线 | 一区二区精品久久 | 欧美性生活久久 | 亚洲人成在线观看 | 欧美精品视 | 成人动漫一区二区三区 | 亚洲电影久久 | 色在线网站| 免费色视频网站 | 999亚洲国产996395 | 午夜少妇| 日本久久综合视频 | 国产 在线 日韩 | 国产剧情一区在线 | 992tv在线 | 日韩高清毛片 | 亚洲国产一二三 | 日本系列中文字幕 | 亚洲一区二区精品在线 | 国产系列精品av | 香蕉视频免费在线播放 | 久久国产麻豆 | 精品欧美乱码久久久久久 | 亚洲精品成人av在线 | 99热这里只有精品免费 | 日韩欧美视频在线观看免费 | 97福利视频 | 在线视频日韩精品 | 欧美怡红院 | 日韩成人免费电影 | 91精品1区| 激情网在线观看 | 成人av一区二区在线观看 | 91三级在线观看 | 又色又爽又黄 | 成 人 免费 黄 色 视频 | 国产精品va最新国产精品视频 | 人人干,人人爽 | 九九热只有这里有精品 | 亚洲精品天天 | 免费看片网址 | 欧美日韩精品在线视频 | 青草视频在线播放 | 在线观看日韩中文字幕 | 黄色软件视频网站 | 国产一区二区在线影院 | 四虎免费在线观看 | 超碰在线cao | 日本三级全黄少妇三2023 | 99久久精品午夜一区二区小说 | 精品久久久久久久久中文字幕 | 亚洲欧洲日韩在线观看 | 国产在线p| 黄色av三级在线 | 黄网站色视频免费观看 | 99精品毛片| 久久精品视频免费观看 | 国产又粗又猛又爽又黄的视频先 | 香蕉视频亚洲 | 人人爱人人添 | 国产一区视频免费在线观看 | 日韩精品一区二区三区在线视频 | 韩国精品一区二区三区六区色诱 | 国产破处精品 | 激情影院在线观看 | 亚洲免费观看视频 | 精品久久精品久久 | 香蕉视频免费看 | 中文字幕在线高清 | 天天操天天干天天操天天干 | 精品国产大片 | 国产人成看黄久久久久久久久 | .国产精品成人自产拍在线观看6 | 在线观看亚洲国产精品 | 国产一级片网站 | 欧美日韩在线免费观看视频 | 国产精品久久久久高潮 | 国产在线精品国自产拍影院 | 91久久一区二区 | 午夜在线观看影院 | 国产黄色视 | 日本久久精品视频 | 久久久久成人精品免费播放动漫 | 在线视频一二三 | 久久一区二 | 亚洲精选国产 | 久久久www成人免费精品张筱雨 | 国产青春久久久国产毛片 | 亚洲国产精品va在线看黑人动漫 | 天堂网一区二区三区 | 国产精品6 | 91大片成人网 | 亚洲狠狠操 | 久久久免费视频播放 | 久久免费视频5 | 在线观看的a站 | 中文字幕 欧美性 | 黄色一级大片在线免费看国产一 | 日本公妇在线观看 | 欧美综合在线视频 | 国产精品永久免费视频 | 国产香蕉视频在线播放 | 日韩精品一二三 | 日韩在线视频线视频免费网站 | 国产在线观看黄 | 一区二区不卡视频在线观看 | 91久久偷偷做嫩草影院 | 久久久综合九色合综国产精品 | 久久69av| 色多多视频在线观看 | 天天躁日日躁狠狠躁av中文 | 永久黄网站色视频免费观看w | 玖玖视频在线 | 国产成人精品999 | 久色免费视频 | 色综合天天狠天天透天天伊人 | 日韩在线观看a | 中文字幕av在线免费 | 国产特级毛片aaaaaa | 丁香高清视频在线看看 | 久久久久久久影视 | 狠狠操夜夜操 | 中文字幕av全部资源www中文字幕在线观看 | 青青河边草免费视频 | 成人永久免费 | www九九热 | 在线观看av中文字幕 | 国产在线欧美日韩 | 国产精品久久久久久久久久久久久 | 久久精品中文字幕免费mv | 国产人成看黄久久久久久久久 | 69国产盗摄一区二区三区五区 | 中文字幕你懂的 | 美女视频久久久 | 天天操天天射天天操 | 国产精品人成电影在线观看 | 免费在线观看午夜视频 | 国产一级视屏 | 伊人色**天天综合婷婷 | 国产精品黄 | 久久久毛片 | 黄色视屏av| 亚洲精品一区二区网址 | 日日夜夜狠狠干 | 91在线一区二区 | 日本特黄一级片 | 国产成人久久精品 | 九九热在线精品视频 | 国产精品久久综合 | 成人福利在线 | 国产一级视频免费看 | 久久久亚洲电影 | 中文字幕在线播放一区二区 | 久热免费在线 | 六月丁香伊人 | 日韩免费观看av | 日本系列中文字幕 | 欧美色综合天天久久综合精品 | 91av在线免费播放 | 亚洲国产精久久久久久久 | 九九热在线视频 | 日韩综合在线观看 | 久久www免费视频 | 五月花婷婷 | 久久久久女人精品毛片九一 | 欧美日韩电影在线播放 | 日韩手机视频 | 夜夜爽www| 91亚洲国产| 在线观看视频免费播放 | 欧美日韩一区二区三区在线观看视频 | 国产精品国内免费一区二区三区 | 中文在线中文a | 国产精品久久久久久久久软件 | 日本久久免费电影 | 日韩在线视频观看 | 色婷婷狠狠五月综合天色拍 | 婷婷在线综合 | 国产正在播放 | 亚洲女同ⅹxx女同tv | 九色琪琪久久综合网天天 | 国产九色91| 黄色影院在线免费观看 | 日韩午夜一级片 | 欧美性色黄| 国产精品99久久免费黑人 | 亚州av一区| 少妇性色午夜淫片aaaze | 欧美aaaxxxx做受视频 | 97精品国产97久久久久久 | 国产精品毛片一区视频播不卡 | 中文亚洲欧美日韩 | 色综合久久88色综合天天人守婷 | 狠狠婷婷 | 伊人网综合在线观看 | 日韩精品1区2区 | 毛片一二区 | 久久这里只有精品视频首页 | 日日干天天射 | 91福利视频免费 | 97超碰在线久草超碰在线观看 | 久久久久精 | 久久深爱网 | 久久精品国产一区二区三区 | 国产资源网站 | 涩涩在线 | 久久久久久久久久国产精品 | 久久久91精品国产一区二区精品 | 欧美性精品 | 成年人天堂com | 日韩欧美综合在线视频 | 国产在线更新 | 国产精品乱码一区二区视频 | 国产手机在线精品 | 久久精品aaa | 国产91精品一区二区麻豆亚洲 | 免费在线观看视频一区 | 最近2019好看的中文字幕免费 | 天天艹天天爽 | 精品久久中文 | 久久五月婷婷综合 | 国产在线超碰 | 国产精品久久久久久久久搜平片 | 色噜噜在线观看视频 | 在线国产能看的 | 一区二区成人国产精品 | 久久国产精品久久精品国产演员表 | 久久久久亚洲精品 | 日韩精品aaa| 国产 字幕 制服 中文 在线 | 国产精品不卡视频 | 一区二区不卡高清 | 色插综合 | www日韩在线观看 | 国产精品综合久久久 | 亚洲黄色在线免费观看 | 免费观看性生活大片 | 日韩高清免费电影 | 五月婷婷在线播放 | 国产女v资源在线观看 | 欧美婷婷综合 | 中文字幕精品一区 | 国产精品美女久久久久久久久 | 亚洲高清av在线 | 黄色av高清 | 91精品国自产在线偷拍蜜桃 | 成人午夜电影免费在线观看 | 国产精品久久久久久久久久ktv | 婷婷六月色 | 国产精品自拍在线 | 青草草在线视频 | 欧美永久视频 | 日本中文字幕视频 | japanesefreesex中国少妇 | 久青草视频在线观看 | 久久96国产精品久久99软件 | 欧美性大战久久久久 | 亚州中文av | 免费十分钟| 国产不卡在线视频 | 视频国产区 | 国产96在线视频 | 精品久久电影 | 欧美性色19p | 亚洲精品国产精品国产 | 免费日韩三级 | 这里有精品在线视频 | 蜜臀久久99精品久久久无需会员 | 国产精品久久久亚洲 | 中文字幕在线观看视频一区二区三区 | 一区二区三区四区五区在线视频 | 亚洲第一av在线播放 | 亚洲一区二区三区四区在线视频 | 成人国产电影在线观看 | 久久久一本精品99久久精品66 | 亚洲国产剧情av | 99热最新精品 | 国产精品 国内视频 | 久久成人午夜 | www.五月激情.com | 黄色精品在线看 | 日韩免费网站 | 色综合婷婷 | av天天澡天天爽天天av | 黄色片免费看 | 国产精品av免费 | 免费观看一级视频 | 久久国产精品一二三区 | 日韩精品久久久久久久电影竹菊 | 天堂网一区二区 | 久久麻豆视频 | 怡红院av久久久久久久 | 国产专区精品视频 | 亚洲色五月 | 综合网欧美 | 黄色大片入口 | 天堂av高清 | 久久人人爽人人片av | 日韩欧美国产激情在线播放 | 国产高清成人 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 成人av一二三区 | 久久久精品小视频 | 在线日韩av| 777xxx欧美| 天天插日日插 | 97福利 | 日韩免费观看一区二区 | 婷婷在线播放 | 久久国产精品久久国产精品 | 久久成人福利 | 日韩v欧美v日本v亚洲v国产v | 久久国色夜色精品国产 |