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

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

?? lion-tut-c22.htm

?? 內(nèi)有一些代碼
?? HTM
字號(hào):
<HTML>
<head>
<link rel="stylesheet" href="../../asm.css">

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Iczelion's win32 asm tutorial</title>
</head>

<body bgcolor="#FFFFFF" background="../../images/back01.jpg">
<P align=center><font color="#0000FF" size="3"><b>第22課 超類化</b></font></P>
<HR SIZE=1>
<p><br>
  在這一講我們將學(xué)習(xí)什么是超類化以及它有什么作用;同時(shí)你還會(huì)學(xué)到怎樣在自己的窗口中用Tab鍵在控件中切換這一技巧。</p>
<p><font color="#FF0000">理論:</font></p>
<p>在你的程序生涯中你肯定遇到過(guò)這樣的情況,你需要一系列的控件,但它們之間卻只有一點(diǎn)點(diǎn)的不同。例如,你可能需要10個(gè)只接受數(shù)字的 Edit 控件,當(dāng)然你可以通過(guò)多種方法來(lái)達(dá)到這個(gè)目的。</p>
<ol>
  <li>創(chuàng)建自己的類并用它實(shí)例化為那些控件</li>
  <li>創(chuàng)建那些 Edit 控件并把它們?nèi)孔宇惢?lt;/li>
  <li>超類化Edit 控件</li>
</ol>
<p>第一種方法太乏味了,因?yàn)槟惚仨氉约簩?shí)現(xiàn)Edit 控件的每個(gè)功能,但這項(xiàng)工作不是輕松就能完成的。第二種方法好于第一種,但仍然要做許多工作,子類化幾個(gè)Edit 
  控件還可以接受,但若要子類化十幾二十個(gè),這項(xiàng)工作簡(jiǎn)直就是一場(chǎng)惡夢(mèng)。在這種情況下就應(yīng)該使用超類化這個(gè)技巧,它是用于控制某一個(gè)特定窗口類的特殊方法。通過(guò)這種控制就可以修改窗口類的特性使之符合你的要求,然后再創(chuàng)建那一堆控件就可以了。</p>
<p>超類化有如下幾個(gè)步驟:</p>
<ol>
  <li>通過(guò)調(diào)用 GetClassInfoEx 來(lái)獲得想要進(jìn)行超類化操作的窗口類的信息。函數(shù)GetClassInfoEx 需要一個(gè)指向 WNDCLASSEX 
    結(jié)構(gòu)的指針,用于當(dāng)成功返回時(shí)填入窗口類的信息。</li>
  <li>按需要修改 WNDCLASSEX 結(jié)構(gòu)的成員,其中有兩個(gè)成員必須修改:<br>
    hInstance 存放程序的實(shí)例句柄<br>
    lpszClassName 指向一個(gè)新類名的指針<br>
    不必修改成員 lpfnWndProc,但大多數(shù)情況下還是需要的。但要記住如果要使用函數(shù) CallWindowProc 調(diào)用老窗口的過(guò)程,那就必須保存成員 
    lpfnWndProc 的原值。</li>
  <li>注冊(cè)修改完的 WNDCLASSEX 結(jié)構(gòu),得到一個(gè)具有舊窗口類某些特性的新窗口類。</li>
  <li>用新窗口類創(chuàng)建窗口</li>
</ol>
<p>如果要?jiǎng)?chuàng)建具有相同特性的多個(gè)控件,超類化就比子類化要好。</p>
<p><font color="#FF0000">舉例:</font></p>
<p>.386 <br>
  .model flat,stdcall <br>
  option casemap:none <br>
  include \masm32\include\windows.inc <br>
  include \masm32\include\user32.inc <br>
  include \masm32\include\kernel32.inc <br>
  includelib \masm32\lib\user32.lib <br>
  includelib \masm32\lib\kernel32.lib <br>
  WM_SUPERCLASS equ WM_USER+5 <br>
  WinMain PROTO :DWORD,:DWORD,:DWORD,:DWORD <br>
  EditWndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD </p>
<p>.data <br>
  ClassName db &quot;SuperclassWinClass&quot;,0 <br>
  AppName db &quot;Superclassing Demo&quot;,0 <br>
  EditClass db &quot;EDIT&quot;,0 <br>
  OurClass db &quot;SUPEREDITCLASS&quot;,0 <br>
  Message db &quot;You pressed the Enter key in the text box!&quot;,0 </p>
<p>.data? <br>
  hInstance dd ? <br>
  hwndEdit dd 6 dup(?) ;存放6個(gè)窗口句柄的數(shù)組<br>
  OldWndProc dd ? ;原來(lái)的窗口過(guò)程</p>
<p>.code <br>
  start: <br>
  invoke GetModuleHandle, NULL <br>
  mov hInstance,eax <br>
  invoke WinMain, hInstance,NULL,NULL, SW_SHOWDEFAULT <br>
  invoke ExitProcess,eax </p>
<p>WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD 
  <br>
  LOCAL wc:WNDCLASSEX <br>
  LOCAL msg:MSG <br>
  LOCAL hwnd:HWND </p>
<p> mov wc.cbSize,SIZEOF WNDCLASSEX <br>
  mov wc.style, CS_HREDRAW or CS_VREDRAW <br>
  mov wc.lpfnWndProc, OFFSET WndProc <br>
  mov wc.cbClsExtra,NULL <br>
  mov wc.cbWndExtra,NULL <br>
  push hInst <br>
  pop wc.hInstance <br>
  mov wc.hbrBackground,COLOR_APPWORKSPACE <br>
  mov wc.lpszMenuName,NULL <br>
  mov wc.lpszClassName,OFFSET ClassName <br>
  invoke LoadIcon,NULL,IDI_APPLICATION <br>
  mov wc.hIcon,eax <br>
  mov wc.hIconSm,eax <br>
  invoke LoadCursor,NULL,IDC_ARROW <br>
  mov wc.hCursor,eax <br>
  invoke RegisterClassEx, addr wc <br>
  invoke CreateWindowEx,WS_EX_CLIENTEDGE+WS_EX_CONTROLPARENT,ADDR ClassName,ADDR 
  AppName,\ <br>
  WS_OVERLAPPED+WS_CAPTION+WS_SYSMENU+WS_MINIMIZEBOX+WS_MAXIMIZEBOX+WS_VISIBLE,CW_USEDEFAULT,\ 
  <br>
  CW_USEDEFAULT,350,220,NULL,NULL,\ <br>
  hInst,NULL <br>
  mov hwnd,eax </p>
<p> .while TRUE <br>
  invoke GetMessage, ADDR msg,NULL,0,0 <br>
  .BREAK .IF (!eax) <br>
  invoke TranslateMessage, ADDR msg <br>
  invoke DispatchMessage, ADDR msg <br>
  .endw <br>
  mov eax,msg.wParam <br>
  ret <br>
  WinMain endp </p>
<p>WndProc proc uses ebx edi hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM 
  <br>
  LOCAL wc:WNDCLASSEX <br>
  .if uMsg==WM_CREATE <br>
  mov wc.cbSize,sizeof WNDCLASSEX <br>
  invoke GetClassInfoEx,NULL,addr EditClass,addr wc <br>
  push wc.lpfnWndProc <br>
  pop OldWndProc <br>
  mov wc.lpfnWndProc, OFFSET EditWndProc <br>
  push hInstance <br>
  pop wc.hInstance <br>
  mov wc.lpszClassName,OFFSET OurClass <br>
  invoke RegisterClassEx, addr wc <br>
  xor ebx,ebx <br>
  mov edi,20 <br>
  .while ebx&lt;6 <br>
  invoke CreateWindowEx,WS_EX_CLIENTEDGE,ADDR OurClass,NULL,\ <br>
  WS_CHILD+WS_VISIBLE+WS_BORDER,20,\ <br>
  edi,300,25,hWnd,ebx,\ <br>
  hInstance,NULL <br>
  mov dword ptr [hwndEdit+4*ebx],eax <br>
  add edi,25 <br>
  inc ebx <br>
  .endw <br>
  invoke SetFocus,hwndEdit <br>
  .elseif uMsg==WM_DESTROY <br>
  invoke PostQuitMessage,NULL <br>
  .else <br>
  invoke DefWindowProc,hWnd,uMsg,wParam,lParam <br>
  ret <br>
  .endif <br>
  xor eax,eax <br>
  ret <br>
  WndProc endp </p>
<p>EditWndProc PROC hEdit:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD <br>
  .if uMsg==WM_CHAR <br>
  mov eax,wParam <br>
  .if (al&gt;=&quot;0&quot; &amp;&amp; al&lt;=&quot;9&quot;) || (al&gt;=&quot;A&quot; 
  &amp;&amp; al&lt;=&quot;F&quot;) || (al&gt;=&quot;a&quot; &amp;&amp; al&lt;=&quot;f&quot;) 
  || al==VK_BACK <br>
  ;處理字符0~9,A~F,a~f,這幾個(gè)十六進(jìn)制數(shù)<br>
  .if al&gt;=&quot;a&quot; &amp;&amp; al&lt;=&quot;f&quot; <br>
  sub al,20h <br>
  如果是字符a~f,則把它們變?yōu)榇髮?lt;br>
  .endif <br>
  invoke CallWindowProc,OldWndProc,hEdit,uMsg,eax,lParam <br>
  ret <br>
  .endif <br>
  .elseif uMsg==WM_KEYDOWN <br>
  mov eax,wParam <br>
  .if al==VK_RETURN <br>
  invoke MessageBox,hEdit,addr Message,addr AppName,MB_OK+MB_ICONINFORMATION <br>
  invoke SetFocus,hEdit <br>
  .elseif al==VK_TAB <br>
  invoke GetKeyState,VK_SHIFT <br>
  test eax,80000000 <br>
  .if ZERO? <br>
  invoke GetWindow,hEdit,GW_HWNDNEXT <br>
  .if eax==NULL <br>
  invoke GetWindow,hEdit,GW_HWNDFIRST <br>
  .endif <br>
  .else <br>
  invoke GetWindow,hEdit,GW_HWNDPREV <br>
  .if eax==NULL <br>
  invoke GetWindow,hEdit,GW_HWNDLAST <br>
  .endif <br>
  .endif <br>
  invoke SetFocus,eax <br>
  xor eax,eax <br>
  ret <br>
  .else <br>
  invoke CallWindowProc,OldWndProc,hEdit,uMsg,wParam,lParam <br>
  ret <br>
  .endif <br>
  .else <br>
  invoke CallWindowProc,OldWndProc,hEdit,uMsg,wParam,lParam <br>
  ret <br>
  .endif <br>
  xor eax,eax <br>
  ret <br>
  EditWndProc endp <br>
  end start <br>
</p>
<p><font color="#FF0000">分析</font> </p>
<p>這個(gè)程序創(chuàng)建了一個(gè)在其客戶區(qū)有六個(gè)被修改的 Edit 控件的簡(jiǎn)單窗口,這些 Edit控件只接受十六進(jìn)制的數(shù)字。實(shí)際上,這個(gè)例子是通過(guò)修改窗口了類化的例子得來(lái)的。這個(gè)程序開始和其它程序一樣,有趣的部分出現(xiàn)在主窗口被創(chuàng)建的時(shí)候:</p>
<p>.if uMsg==WM_CREATE <br>
  mov wc.cbSize,sizeof WNDCLASSEX <br>
  invoke GetClassInfoEx,NULL,addr EditClass,addr wc </p>
<p> 必須用想進(jìn)行超類化操作的類數(shù)據(jù)填充 WNDCLASSEX 結(jié)構(gòu),在我們的例子中就是類 Edit ,記住在調(diào)用函數(shù) GetClassInfoEx 之前必須填寫成員 
  cbSize,否則函數(shù)調(diào)用 GetClassInfoEx不會(huì)在 WNDCLASSEX 結(jié)構(gòu)中填入正確的返回值。成功返回后,變量 wc中保存的就是想要?jiǎng)?chuàng)建一個(gè)新類所需要的所有信息。</p>
<p> push wc.lpfnWndProc <br>
  pop OldWndProc <br>
  mov wc.lpfnWndProc, OFFSET EditWndProc <br>
  push hInstance <br>
  pop wc.hInstance <br>
  mov wc.lpszClassName,OFFSET OurClass </p>
<p> 現(xiàn)在必須修改變量 wc 的一些屬性:第一個(gè)要修改的就是指向窗口過(guò)程的指針。因?yàn)樵谛麓翱谶^(guò)程中函數(shù) CallWindowProx 要用到老窗口過(guò)程,因此得把它保存到一個(gè)變量中以便使用。這個(gè)技巧和在子類化中用到的一樣,只不過(guò)不是調(diào)用 
  SetWindowLong 而是直接修改 WNDCLASSEX 結(jié)構(gòu)罷了。接下來(lái)必須得為這個(gè)新類取個(gè)名字。</p>
<p> invoke RegisterClassEx, addr wc </p>
<p>當(dāng)所有這些都完成時(shí),注冊(cè)這個(gè)新類就會(huì)得到一個(gè)具有舊類某些特征的新類了。</p>
<p> xor ebx,ebx <br>
  mov edi,20 <br>
  .while ebx&lt;6 <br>
  invoke CreateWindowEx,WS_EX_CLIENTEDGE,ADDR OurClass,NULL,\ <br>
  WS_CHILD+WS_VISIBLE+WS_BORDER,20,\ <br>
  edi,300,25,hWnd,ebx,\ <br>
  hInstance,NULL <br>
  mov dword ptr [hwndEdit+4*ebx],eax <br>
  add edi,25 <br>
  inc ebx <br>
  .endw <br>
  invoke SetFocus,hwndEdit </p>
<p> 注冊(cè)完新類就可以創(chuàng)建基于它的窗口了:<br>
  在上面的程序片斷中,用寄存器 ebx 來(lái)保存已創(chuàng)建的窗口數(shù)目,用寄存器 edi 來(lái)保存窗口左上角的 y 坐標(biāo)。創(chuàng)建一個(gè)新窗口時(shí),把它的句柄保存在一個(gè)雙字的數(shù)組中,當(dāng)創(chuàng)建完所有的窗口后,設(shè)定輸入焦點(diǎn)為所創(chuàng)建的第一個(gè)窗口。</p>
<p>這時(shí)已經(jīng)有6個(gè)只能接受十六進(jìn)制數(shù)字的 edit 窗口控件了,替換的窗口過(guò)程處理了字符過(guò)濾,這實(shí)際上和在子類化中的例子是一樣的。但不必做子類化那些窗口的額外工作了。 
</p>
<p>在此程序中,通過(guò)使用 Tabs 鍵來(lái)在各個(gè) Edit 控件中切換來(lái)使得這個(gè)程序更加有趣。一般來(lái)說(shuō),如果使用對(duì)話框,對(duì)話框管理器會(huì)處理好所有這些問(wèn)題,即:<br>
  按下 Tabs 輸入焦點(diǎn)切換到下一個(gè)控件窗口中,按下 Shift-Tabs 輸入焦點(diǎn)切換到上一個(gè)控件窗口中;但一個(gè)簡(jiǎn)單的窗口不具有這個(gè)功能,必須子類化它們以處理 
  Tabs 鍵。在這個(gè)例子中,不必一個(gè)一個(gè)去子類化已經(jīng)進(jìn)行過(guò)超類化操作的這些控件,可以使用一種集中控制切換策略。</p>
<p> .elseif al==VK_TAB <br>
  invoke GetKeyState,VK_SHIFT <br>
  test eax,80000000 <br>
  .if ZERO? <br>
  invoke GetWindow,hEdit,GW_HWNDNEXT <br>
  .if eax==NULL <br>
  invoke GetWindow,hEdit,GW_HWNDFIRST <br>
  .endif <br>
  .else <br>
  invoke GetWindow,hEdit,GW_HWNDPREV <br>
  .if eax==NULL <br>
  invoke GetWindow,hEdit,GW_HWNDLAST <br>
  .endif <br>
  .endif <br>
  invoke SetFocus,eax <br>
  xor eax,eax <br>
  ret </p>
<p> 上面是摘自于 EditWndClass 過(guò)程的程序片斷,它檢查用戶是否按下了 Tabs 鍵,若是就調(diào)用函數(shù) GetKeyState 來(lái)檢查 SHIFT 
  鍵是否也被同時(shí)按下了。函數(shù) GetKeyState 在寄存器 eax 中設(shè)立一個(gè)返回值,用于判斷某個(gè)特定的鍵是否被按下了,若按下了,則把 eax 的的最高位置1,否則把最高位清0。所以只要用 
  80000000h 來(lái)測(cè)試返回值就行了,若最高位是1則說(shuō)明用戶按下了 SHIFT-Tabs,這需要單獨(dú)處理;否則說(shuō)明只按下 Tabs 鍵,調(diào)用函數(shù) GetWindow 
  來(lái)獲得 hEdit 所指向窗口的下一個(gè)窗口句柄,若該函數(shù)返回 NULL ,說(shuō)明這是當(dāng)前窗口是窗口鏈中最后一個(gè)窗口了,應(yīng)該通過(guò)以參數(shù) GW_HWNDFIRST 
  調(diào)用函數(shù) GetWindow 來(lái)卷回到窗口鏈中的第一個(gè)窗口控件。SHIFT-Tabs 的處理過(guò)程和這正好相反。<br>
</p>
<HR SIZE=1>
<DIV align=center> <font face="宋體"> 
  <SCRIPT language=JavaScript1.1 src="../lion-tut-c13.files/textclick"></SCRIPT>
  <BR>
  </font></DIV>
<font face="宋體"><!-- 10:1 文本廣告交換 --> </font> 
<DIV align=center> <font face="宋體"> 
  <SCRIPT language=JavaScript1.1 src="../lion-tut-c13.files/c21.htm"></SCRIPT>
  <!-- 10:1 文本廣告交換 --></font></DIV>
<HR SIZE=1>
<DIV align=center><font face="宋體">翻譯:ZhangJun,校對(duì):LuoYunBin's Win32 ASM Page, <A 
href="http://asm.yeah.net/">http://asm.yeah.net</A></font></DIV>
</BODY></HTML>

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩1区2区| 一本色道久久综合狠狠躁的推荐| 中文字幕精品一区二区精品绿巨人| 成人久久视频在线观看| 亚洲一区在线电影| 日韩一区二区三区视频| 大陆成人av片| 亚瑟在线精品视频| 久久久国际精品| 一本久久精品一区二区| 国内精品免费**视频| 一区二区三区精品视频在线| 日韩一二三区不卡| 94色蜜桃网一区二区三区| 日产国产高清一区二区三区| 亚洲欧洲无码一区二区三区| 精品国产伦一区二区三区观看体验 | 欧美日韩成人综合在线一区二区| 国产精品亚洲视频| 日本欧美一区二区三区| 日韩美女啊v在线免费观看| 欧美v国产在线一区二区三区| 欧美丝袜丝交足nylons| 色综合天天性综合| 激情av综合网| 麻豆91在线播放免费| 日韩中文字幕一区二区三区| 中文一区在线播放| 久久九九久久九九| 日韩欧美国产1| 欧美精品三级日韩久久| 在线观看国产精品网站| 99v久久综合狠狠综合久久| 播五月开心婷婷综合| 国产一区二区视频在线| 毛片一区二区三区| 首页欧美精品中文字幕| 一区二区高清视频在线观看| 亚洲激情综合网| 国产三级三级三级精品8ⅰ区| 777午夜精品免费视频| 777xxx欧美| 欧美视频精品在线| 99久久久无码国产精品| 成人涩涩免费视频| 国产在线精品免费av| 日本欧美韩国一区三区| 久久精品二区亚洲w码| 激情综合色丁香一区二区| 国内精品国产三级国产a久久| 经典三级视频一区| 国产v综合v亚洲欧| 91亚洲永久精品| 91福利视频久久久久| 在线观看91av| 久久无码av三级| 国产精品久久久爽爽爽麻豆色哟哟 | 一区二区三区在线观看国产| 一区二区三区国产豹纹内裤在线| 亚洲午夜免费电影| 日本不卡视频在线观看| 国内精品国产成人国产三级粉色| 成人高清视频在线| 在线观看网站黄不卡| 日韩欧美国产1| 精品国产乱码久久久久久图片 | 亚洲午夜久久久久久久久久久| 五月开心婷婷久久| 精品系列免费在线观看| 波多野结衣中文字幕一区二区三区| 91久久精品国产91性色tv| 5858s免费视频成人| 国产亚洲欧洲997久久综合| 最新国产成人在线观看| 日韩中文字幕亚洲一区二区va在线| 加勒比av一区二区| 99精品国产视频| 欧美日韩一区二区三区在线| 日韩免费观看高清完整版在线观看| 欧美r级电影在线观看| 久久精品一区二区| 亚洲免费在线视频一区 二区| 亚洲国产成人tv| 久久99国产精品久久99| 国产丶欧美丶日本不卡视频| 91久久精品网| 久久色中文字幕| 中文字幕一区二区三区在线不卡| 亚洲成av人影院| 国产麻豆精品在线观看| 欧美午夜不卡在线观看免费| 久久久91精品国产一区二区精品| 亚洲综合色成人| 成人美女视频在线观看18| 欧美高清视频www夜色资源网| 亚洲欧美在线观看| 国产专区欧美精品| 欧美美女激情18p| 亚洲欧洲精品天堂一级 | 首页国产欧美日韩丝袜| 99热这里都是精品| 久久久一区二区三区捆绑**| 五月天激情综合网| 欧美影院精品一区| 亚洲欧洲www| 国产成人av电影| 精品国产一区二区三区四区四| 亚洲国产欧美在线| 色一情一伦一子一伦一区| 国产三级欧美三级| 紧缚捆绑精品一区二区| 日韩一区二区免费视频| 香蕉久久夜色精品国产使用方法 | 一本久久综合亚洲鲁鲁五月天 | 久久久久久久久蜜桃| 美国三级日本三级久久99| 欧美三日本三级三级在线播放| 中文字幕一区二区三区在线不卡| 国产精品中文欧美| 精品国精品自拍自在线| 日韩精品一二三四| 欧美日韩精品一二三区| 一区二区三区在线免费观看| 色综合久久88色综合天天免费| 国产精品国产三级国产普通话99| 国产成人精品一区二区三区网站观看| 日韩视频一区二区在线观看| 免费人成在线不卡| 欧美一区二区三区白人| 蜜桃精品在线观看| 欧美一级二级三级蜜桃| 男女性色大片免费观看一区二区| 欧美久久久影院| 亚洲国产欧美一区二区三区丁香婷| 91成人在线免费观看| 亚洲一区二区三区四区在线免费观看| 91浏览器打开| 一区二区三区欧美视频| 91福利在线免费观看| 亚洲午夜精品网| 欧美性猛交xxxx乱大交退制版| 亚洲色图一区二区三区| 成人黄色在线视频| 国产精品丝袜在线| 一本色道久久综合亚洲91 | 制服视频三区第一页精品| 亚洲美女视频在线观看| 在线中文字幕不卡| 亚洲午夜久久久久久久久电影院| 欧美精品成人一区二区三区四区| 日本大胆欧美人术艺术动态| 日韩欧美二区三区| 国产精品1024| 亚洲女子a中天字幕| 欧美日韩不卡一区二区| 国内成+人亚洲+欧美+综合在线| 久久久亚洲精华液精华液精华液| 波波电影院一区二区三区| 亚洲色图清纯唯美| 91精品国产综合久久久蜜臀粉嫩| 日韩精品久久久久久| 欧美mv和日韩mv国产网站| 风间由美一区二区三区在线观看 | 91丝袜美女网| 亚洲成av人片一区二区三区| 日韩免费高清av| 成人网在线播放| 亚洲第一在线综合网站| 精品剧情在线观看| 色噜噜狠狠成人中文综合 | 美女视频免费一区| 国产人久久人人人人爽| 欧美亚男人的天堂| 激情都市一区二区| 亚洲精品一二三| 亚洲精品一区二区三区在线观看 | 精品少妇一区二区三区免费观看 | 经典三级一区二区| 亚洲乱码一区二区三区在线观看| 欧美一区欧美二区| 成人av资源网站| 日韩一区精品字幕| 亚洲欧洲一区二区在线播放| 日韩欧美国产综合一区| 一本到高清视频免费精品| 韩日精品视频一区| 亚洲综合无码一区二区| 久久精品视频一区| 在线成人免费观看| 99r国产精品| 国产一区 二区 三区一级| 亚洲综合成人在线视频| 国产日韩三级在线| 欧美一级理论性理论a| 99久久久无码国产精品| 激情都市一区二区| 日本亚洲免费观看| 亚洲一区av在线| 亚洲欧美自拍偷拍色图| 久久久久久日产精品|