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

posts - 13,  comments - 16,  trackbacks - 0

消息,就是指Windows發(fā)出的一個通知,告訴應(yīng)用程序某個事情發(fā)生了。例如,單擊鼠標、改變窗口尺寸、按下鍵盤上的一個鍵都會

使Windows發(fā)送一個消息給應(yīng)用程序。    
  消息本身是作為一個記錄傳遞給應(yīng)用程序的,這個記錄中包含了消息的類型以及其他信息。例如,對于單擊鼠標所產(chǎn)生的消息來

說,這個記錄中包含了單擊鼠標時的坐標。這個記錄類型叫做TMsg,它在Windows單元中是這樣聲明的:    
   
  type    
  TMsg   =   packed   record    
  hwnd:   HWND;   //窗口句柄    
  message:   UINT;//消息常量標識符    
  wParam:   WPARAM   ;//   32位消息的特定附加信息    
  lParam:   LPARAM   ;//   32位消息的特定附加信息    
  time:   DWORD;//消息創(chuàng)建時的時間    
  pt:   TPoint;   //消息創(chuàng)建時的鼠標位置    
  end   ;    
   
  消息中有什么?    
  是否覺得一個消息記錄中的信息像希臘語一樣?如果是這樣,那么看一看下面的解釋:hwnd   32位的窗口句柄。窗口可以是任何

類型的屏幕對象,因為Win32能夠維護大多數(shù)可    
  視對象的句柄(窗口、對話框、按鈕、編輯框等)。message   用于區(qū)別其他消息的常量值,這些常量可以是Windows單元中預(yù)定義

的常量,也    
  可以是自定義的常量。    
  wParam   通常是一個與消息有關(guān)的常量值,也可能是窗口或控件的句柄。    
  lParam   通常是一個指向內(nèi)存中數(shù)據(jù)的指針。由于WParam、lParam和Pointer都是32位的,因此,它們之間可以相互轉(zhuǎn)換。    
   
  WM_NULL   =$0000   //    
  WM_CREATE   =$0001   //應(yīng)用程序創(chuàng)建一個窗口    
  WM_DESTROY   =   $0002   //一個窗口被銷毀    
  WM_MOVE   =   $0003   //移動一個窗口    
  WM_SIZE=   $0005   //改變一個窗口的大小    
  WM_ACTIVATE=   $0006   //一個窗口被激活或失去激活狀態(tài);    
  WM_SETFOCUS=   $0007   //獲得焦點后    
  WM_KILLFOCUS=   $0008   //失去焦點    
  WM_ENABLE=   $000A   //改變enable狀態(tài)    
  WM_SETREDRAW=   $000B   //設(shè)置窗口是否能重畫    
  WM_SETTEXT=   $000C   //應(yīng)用程序發(fā)送此消息來設(shè)置一個窗口的文本    
  WM_GETTEXT   =   $000D   //應(yīng)用程序發(fā)送此消息來復(fù)制對應(yīng)窗口的文本到緩沖區(qū)    
  WM_GETTEXTLENGTH   =   $000E   //得到與一個窗口有關(guān)的文本的長度(不包含空字符)    
  WM_PAINT   =   $000F   //要求一個窗口重畫自己    
  WM_CLOSE   =   $0010   //當(dāng)一個窗口或應(yīng)用程序要關(guān)閉時發(fā)送一個信號    
  WM_QUERYENDSESSION=   $0011   //當(dāng)用戶選擇結(jié)束對話框或程序自己調(diào)用ExitWindows函數(shù)    
  WM_QUIT=   $0012   //用來結(jié)束程序運行或當(dāng)程序調(diào)用postquitmessage函數(shù)    
  WM_QUERYOPEN   =   $0013   //當(dāng)用戶窗口恢復(fù)以前的大小位置時,把此消息發(fā)送給某個圖標    
  WM_ERASEBKGND   =   $0014   //當(dāng)窗口背景必須被擦除時(例在窗口改變大小時)    
  WM_SYSCOLORCHANGE   =   $0015   //當(dāng)系統(tǒng)顏色改變時,發(fā)送此消息給所有頂級窗口    
  WM_ENDSESSION   =   $0016   //   當(dāng)系統(tǒng)進程發(fā)出WM_QUERYENDSESSION消息后,此消息發(fā)送給應(yīng)用程序,通知它對話是否結(jié)束

   
  WM_SYSTEMERROR   =   $0017   //    
  WM_SHOWWINDOW=   $0018   //當(dāng)隱藏或顯示窗口是發(fā)送此消息給這個窗口    
  WM_ACTIVATEAPP   =   $001C   //發(fā)此消息給應(yīng)用程序哪個窗口是激活的,哪個是非激活的;    
  WM_FONTCHANGE=   $001D   //當(dāng)系統(tǒng)的字體資源庫變化時發(fā)送此消息給所有頂級窗口    
  WM_TIMECHANGE=   $001E   //當(dāng)系統(tǒng)的時間變化時發(fā)送此消息給所有頂級窗口    
  WM_CANCELMODE=   $001F   //發(fā)送此消息來取消某種正在進行的摸態(tài)(操作)    
  WM_SETCURSOR   =   $0020   //如果鼠標引起光標在某個窗口中移動且鼠標輸入沒有被捕獲時,就發(fā)消息給某個窗口    
  WM_MOUSEACTIVATE   =   $0021   //當(dāng)光標在某個非激活的窗口中而用戶正按著鼠標的某個鍵發(fā)送此消息給當(dāng)前窗口    
  WM_CHILDACTIVATE   =   $0022   //發(fā)送此消息給MDI子窗口當(dāng)用戶點擊此窗口的標題欄,或當(dāng)窗口被激活,移動,改變大小   

 
  WM_QUEUESYNC=   $0023   //此消息由基于計算機的訓(xùn)練程序發(fā)送,通過WH_JOURNALPALYBACK的hook程序分離出用戶輸入消息   

 
  WM_GETMINMAXINFO=   $0024   //此消息發(fā)送給窗口當(dāng)它將要改變大小或位置;    
  WM_PAINTICON   =   $0026   //發(fā)送給最小化窗口當(dāng)它圖標將要被重畫    
  WM_ICONERASEBKGND   =   $0027   //此消息發(fā)送給某個最小化窗口,僅當(dāng)它在畫圖標前它的背景必須被重畫    
  WM_NEXTDLGCTL   =   $0028   //發(fā)送此消息給一個對話框程序去更改焦點位置    
  WM_SPOOLERSTATUS=   $002A   //每當(dāng)打印管理列隊增加或減少一條作業(yè)時發(fā)出此消息    
  WM_DRAWITEM=   $002B   //當(dāng)button,combobox,listbox,menu的可視外觀改變時發(fā)送此消息給這些空件的所有者    
  WM_MEASUREITEM=   $002C   //當(dāng)button,   combo   box,   list   box,   list   view   control,   or   menu   item  

被創(chuàng)建時發(fā)送此消息給控件的所有者    
  WM_DELETEITEM   =   $002D   //   當(dāng)the   list   box   或combo   box   被銷毀或當(dāng)某些項被刪除通過LB_DELETESTRING, 

 LB_RESETCONTENT,   CB_DELETESTRING,   or   CB_RESETCONTENT   消息    
  WM_VKEYTOITEM   =   $002E   //此消息有一個LBS_WANTKEYBOARDINPUT風(fēng)格的發(fā)出給它的所有者來響應(yīng)WM_KEYDOWN消息    
  WM_CHARTOITEM   =   $002F   //此消息由一個LBS_WANTKEYBOARDINPUT風(fēng)格的列表框發(fā)送給他的所有者來響應(yīng)WM_CHAR消息    
  WM_SETFONT=   $0030   //當(dāng)繪制文本時程序發(fā)送此消息得到控件要用的顏色    
  WM_GETFONT=   $0031   //應(yīng)用程序發(fā)送此消息得到當(dāng)前控件繪制文本的字體    
  WM_SETHOTKEY=   $0032   //應(yīng)用程序發(fā)送此消息讓一個窗口與一個熱鍵相關(guān)連    
  WM_GETHOTKEY=   $0033   //應(yīng)用程序發(fā)送此消息來判斷熱鍵與某個窗口是否有關(guān)聯(lián)    
  WM_QUERYDRAGICON=   $0037   //此消息發(fā)送給最小化窗口,當(dāng)此窗口將要被拖放而它的類中沒有定義圖標,應(yīng)用程序能    
  返回一個圖標或光標的句柄,當(dāng)用戶拖放圖標時系統(tǒng)顯示這個圖標或光標    
  WM_COMPAREITEM=   $0039   //發(fā)送此消息來判定combobox或listbox新增加的項的相對位置    
  WM_GETOBJECT=   $003D   //WM_COMPACTING   =   $0041   //顯示內(nèi)存已經(jīng)很少了    
  WM_WINDOWPOSCHANGING   =   $0046   //發(fā)送此消息給那個窗口的大小和位置將要被改變時,來調(diào)用setwindowpos函數(shù)或其它窗

口管理函數(shù)    
  WM_WINDOWPOSCHANGED   =   $0047   //發(fā)送此消息給那個窗口的大小和位置已經(jīng)被改變時,來調(diào)用setwindowpos函數(shù)或其它窗

口管理函數(shù)    
  WM_POWER=   $0048   //(適用于16位的windows)當(dāng)系統(tǒng)將要進入暫停狀態(tài)時發(fā)送此消息    
  WM_COPYDATA   =   $004A   //當(dāng)一個應(yīng)用程序傳遞數(shù)據(jù)給另一個應(yīng)用程序時發(fā)送此消息    
  WM_CANCELJOURNAL=   $004B   //當(dāng)某個用戶取消程序日志激活狀態(tài),提交此消息給程序    
  WM_NOTIFY   =   $004E   //當(dāng)某個控件的某個事件已經(jīng)發(fā)生或這個控件需要得到一些信息時,發(fā)送此消息給它的父窗口    
  WM_INPUTLANGCHANGEREQUEST   =   $0050   //當(dāng)用戶選擇某種輸入語言,或輸入語言的熱鍵改變    
  WM_INPUTLANGCHANGE=   $0051   //當(dāng)平臺現(xiàn)場已經(jīng)被改變后發(fā)送此消息給受影響的最頂級窗口    
  WM_TCARD=   $0052   //當(dāng)程序已經(jīng)初始化windows幫助例程時發(fā)送此消息給應(yīng)用程序    
  WM_HELP   =   $0053   //此消息顯示用戶按下了F1,如果某個菜單是激活的,就發(fā)送此消息個此窗口關(guān)聯(lián)的菜單,否則就    
  發(fā)送給有焦點的窗口,如果當(dāng)前都沒有焦點,就把此消息發(fā)送給當(dāng)前激活的窗口    
  WM_USERCHANGED=   $0054   //當(dāng)用戶已經(jīng)登入或退出后發(fā)送此消息給所有的窗口,當(dāng)用戶登入或退出時系統(tǒng)更新用戶的具體   

 
  設(shè)置信息,在用戶更新設(shè)置時系統(tǒng)馬上發(fā)送此消息;    
  WM_NOTIFYformAT   =   $0055   //公用控件,自定義控件和他們的父窗口通過此消息來判斷控件是使用ANSI還是UNICODE結(jié)構(gòu)  

 
  在WM_NOTIFY消息,使用此控件能使某個控件與它的父控件之間進行相互通信    
  WM_CONTEXTMENU=   $007B   //當(dāng)用戶某個窗口中點擊了一下右鍵就發(fā)送此消息給這個窗口
WM_styleCHANGING=   $007C   //當(dāng)調(diào)用SETWINDOWLONG函數(shù)將要改變一個或多個窗口的風(fēng)格時發(fā)送此消息給那個窗口    
  WM_styleCHANGED   =   $007D   //當(dāng)調(diào)用SETWINDOWLONG函數(shù)一個或多個窗口的風(fēng)格后發(fā)送此消息給那個窗口    
  WM_DISPLAYCHANGE=   $007E   //當(dāng)顯示器的分辨率改變后發(fā)送此消息給所有的窗口    
  WM_GETICON=   $007F   //此消息發(fā)送給某個窗口來返回與某個窗口有關(guān)連的大圖標或小圖標的句柄;    
  WM_SETICON=   $0080   //程序發(fā)送此消息讓一個新的大圖標或小圖標與某個窗口關(guān)聯(lián);    
  WM_NCCREATE   =   $0081   //當(dāng)某個窗口第一次被創(chuàng)建時,此消息在WM_CREATE消息發(fā)送前發(fā)送;    
  WM_NCDESTROY=   $0082   //此消息通知某個窗口,非客戶區(qū)正在銷毀    
  WM_NCCALCSIZE   =   $0083   //當(dāng)某個窗口的客戶區(qū)域必須被核算時發(fā)送此消息    
  WM_NCHITTEST=   $0084   //移動鼠標,按住或釋放鼠標時發(fā)生    
  WM_NCPAINT=   $0085   //程序發(fā)送此消息給某個窗口當(dāng)它(窗口)的框架必須被繪制時;    
  WM_NCACTIVATE=   $0086   //此消息發(fā)送給某個窗口僅當(dāng)它的非客戶區(qū)需要被改變來顯示是激活還是非激活狀態(tài);    
  WM_GETDLGCODE=   $0087   //發(fā)送此消息給某個與對話框程序關(guān)聯(lián)的控件,widdows控制方位鍵和TAB鍵使輸入進入此控件    
  通過響應(yīng)WM_GETDLGCODE消息,應(yīng)用程序可以把他當(dāng)成一個特殊的輸入控件并能處理它    
  WM_NCMOUSEMOVE   =   $00A0   //當(dāng)光標在一個窗口的非客戶區(qū)內(nèi)移動時發(fā)送此消息給這個窗口//非客戶區(qū)為:窗體的標題欄及

窗    
  的邊框體    
  WM_NCLBUTTONDOWN=   $00A1   //    
  當(dāng)光標在一個窗口的非客戶區(qū)同時按下鼠標左鍵時提交此消息    
  WM_NCLBUTTONUP=   $00A2   //當(dāng)用戶釋放鼠標左鍵同時光標某個窗口在非客戶區(qū)十發(fā)送此消息;    
  WM_NCLBUTTONDBLCLK=   $00A3   //當(dāng)用戶雙擊鼠標左鍵同時光標某個窗口在非客戶區(qū)十發(fā)送此消息    
  WM_NCRBUTTONDOWN=   $00A4   //當(dāng)用戶按下鼠標右鍵同時光標又在窗口的非客戶區(qū)時發(fā)送此消息    
  WM_NCRBUTTONUP=   $00A5   //當(dāng)用戶釋放鼠標右鍵同時光標又在窗口的非客戶區(qū)時發(fā)送此消息    
  WM_NCRBUTTONDBLCLK=   $00A6   //當(dāng)用戶雙擊鼠標右鍵同時光標某個窗口在非客戶區(qū)十發(fā)送此消息    
  WM_NCMBUTTONDOWN=   $00A7   //當(dāng)用戶按下鼠標中鍵同時光標又在窗口的非客戶區(qū)時發(fā)送此消息    
  WM_NCMBUTTONUP=   $00A8   //當(dāng)用戶釋放鼠標中鍵同時光標又在窗口的非客戶區(qū)時發(fā)送此消息    
  WM_NCMBUTTONDBLCLK=   $00A9   //當(dāng)用戶雙擊鼠標中鍵同時光標又在窗口的非客戶區(qū)時發(fā)送此消息    
  WM_KEYFIRST   =   $0100   //    
  WM_KEYDOWN=   $0100   //按下一個鍵    
  WM_KEYUP=   $0101   //釋放一個鍵    
  WM_CHAR   =   $0102   //按下某鍵,并已發(fā)出WM_KEYDOWN,WM_KEYUP消息    
  WM_DEADCHAR   =   $0103   //當(dāng)用translatemessage函數(shù)翻譯WM_KEYUP消息時發(fā)送此消息給擁有焦點的窗口    
  WM_SYSKEYDOWN   =   $0104   //當(dāng)用戶按住ALT鍵同時按下其它鍵時提交此消息給擁有焦點的窗口;    
  WM_SYSKEYUP   =   $0105   //當(dāng)用戶釋放一個鍵同時ALT   鍵還按著時提交此消息給擁有焦點的窗口    
  WM_SYSCHAR=   $0106   //當(dāng)WM_SYSKEYDOWN消息被TRANSLATEMESSAGE函數(shù)翻譯后提交此消息給擁有焦點的  
  窗口    
  WM_SYSDEADCHAR=   $0107   //當(dāng)WM_SYSKEYDOWN消息被TRANSLATEMESSAGE函數(shù)翻譯后發(fā)送此消息給擁有焦點的窗口    
  WM_KEYLAST=   $0108   //    
  WM_INITDIALOG   =   $0110   //在一個對話框程序被顯示前發(fā)送此消息給它,通常用此消息初始化控件和執(zhí)行其它任務(wù)    
  WM_COMMAND=   $0111   //當(dāng)用戶選擇一條菜單命令項或當(dāng)某個控件發(fā)送一條消息給它的父窗口,一個快捷鍵被翻譯    
  WM_SYSCOMMAND   =   $0112   //當(dāng)用戶選擇窗口菜單的一條命令或當(dāng)用戶選擇最大化或最小化時那個窗口會收到此消息    
  WM_TIMER=   $0113   //發(fā)生了定時器事件    
  WM_HSCROLL=   $0114   //當(dāng)一個窗口標準水平滾動條產(chǎn)生一個滾動事件時發(fā)送此消息給那個窗口,也發(fā)送給擁有它的控件    
  WM_VSCROLL=   $0115   //當(dāng)一個窗口標準垂直滾動條產(chǎn)生一個滾動事件時發(fā)送此消息給那個窗口也,發(fā)送給擁有它的控件

WM_INITMENU   =   $0116   //    
  當(dāng)一個菜單將要被激活時發(fā)送此消息,它發(fā)生在用戶菜單條中的某項或按下某個菜單鍵,它允許    
  程序在顯示前更改菜單    
  WM_INITMENUPOPUP=   $0117   //當(dāng)一個下拉菜單或子菜單將要被激活時發(fā)送此消息,它允許程序在它顯示前更改菜單,而不要 

  
  改變?nèi)?nbsp;   
  WM_MENUSELECT   =   $011F   //當(dāng)用戶選擇一條菜單項時發(fā)送此消息給菜單的所有者(一般是窗口)    
  WM_MENUCHAR   =   $0120   //當(dāng)菜單已被激活用戶按下了某個鍵(不同于加速鍵),發(fā)送此消息給菜單的所有者;    
  WM_ENTERIDLE=   $0121   //當(dāng)一個模態(tài)對話框或菜單進入空載狀態(tài)時發(fā)送此消息給它的所有者,一個模態(tài)對話框或菜單進入空

載狀態(tài)就是在處理完一條或幾條先前的消息后沒有消息它的列隊中等待    
  WM_MENURBUTTONUP=   $0122   //    
  WM_MENUDRAG   =   $0123   //    
  WM_MENUGETOBJECT=   $0124   //    
  WM_UNINITMENUPOPUP=   $0125   //    
  WM_MENUCOMMAND=   $0126   //    
  WM_CHANGEUISTATE=   $0127   //    
  WM_UPDATEUISTATE=   $0128   //    
  WM_QUERYUISTATE   =   $0129   //    
  WM_CTLCOLORMSGBOX   =   $0132   //在windows繪制消息框前發(fā)送此消息給消息框的所有者窗口,通過響應(yīng)這條消息,所有者窗

口可以    
  通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置消息框的文本和背景顏色    
  WM_CTLCOLOREDIT   =   $0133   //當(dāng)一個編輯型控件將要被繪制時發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗口

可以    
  通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置編輯框的文本和背景顏色    
  WM_CTLCOLORLISTBOX=   $0134   //當(dāng)一個列表框控件將要被繪制前發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗口

可以    
  通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置列表框的文本和背景顏色    
  WM_CTLCOLORBTN=   $0135   //當(dāng)一個按鈕控件將要被繪制時發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗口可以   

 
  通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置按紐的文本和背景顏色    
  WM_CTLCOLORDLG=   $0136   //當(dāng)一個對話框控件將要被繪制前發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗口可以 

  
  通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置對話框的文本背景顏色    
  WM_CTLCOLORSCROLLBAR=   $0137   //當(dāng)一個滾動條控件將要被繪制時發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗

口可以    
  通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置滾動條的背景顏色    
  WM_CTLCOLORSTATIC   =   $0138   //當(dāng)一個靜態(tài)控件將要被繪制時發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗口

可以    
  通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置靜態(tài)控件的文本和背景顏色    
  WM_MOUSEFIRST   =   $0200   //    
  WM_MOUSEMOVE=   $0200   //移動鼠標    
  WM_LBUTTONDOWN=   $0201   //按下鼠標左鍵    
  WM_LBUTTONUP=   $0202   //釋放鼠標左鍵    
  WM_LBUTTONDBLCLK=   $0203   //雙擊鼠標左鍵    
  WM_RBUTTONDOWN=   $0204   //按下鼠標右鍵    
  WM_RBUTTONUP=   $0205   //釋放鼠標右鍵    
  WM_RBUTTONDBLCLK=   $0206   //雙擊鼠標右鍵    
  WM_MBUTTONDOWN=   $0207   //按下鼠標中鍵    
  WM_MBUTTONUP=   $0208   //釋放鼠標中鍵    
  WM_MBUTTONDBLCLK=   $0209   //雙擊鼠標中鍵    
  WM_MOUSEWHEEL   =   $020A   //當(dāng)鼠標輪子轉(zhuǎn)動時發(fā)送此消息個當(dāng)前有焦點的控件    
  WM_MOUSELAST=   $020A   //    
  WM_PARENTNOTIFY   =   $0210   //當(dāng)MDI子窗口被創(chuàng)建或被銷毀,或用戶按了一下鼠標鍵而光標在子窗口上時發(fā)送此消息給它的

父窗口    
  WM_ENTERMENULOOP=   $0211   //發(fā)送此消息通知應(yīng)用程序的主窗口that已經(jīng)進入了菜單循環(huán)模式    
  WM_EXITMENULOOP   =   $0212   //發(fā)送此消息通知應(yīng)用程序的主窗口that已退出了菜單循環(huán)模式    
  WM_NEXTMENU   =   $0213   //    
  WM_SIZING   =   532   //當(dāng)用戶正在調(diào)整窗口大小時發(fā)送此消息給窗口;通過此消息應(yīng)用程序可以監(jiān)視窗口大小和位置    
  也可以修改他們    
  WM_CAPTURECHANGED   =   533   //發(fā)送此消息給窗口當(dāng)它失去捕獲的鼠標時;    
  WM_MOVING   =   534   //當(dāng)用戶在移動窗口時發(fā)送此消息,通過此消息應(yīng)用程序可以監(jiān)視窗口大小和位置    
  也可以修改他們;    
WM_POWERBROADCAST   =   536   //此消息發(fā)送給應(yīng)用程序來通知它有關(guān)電源管理事件;    
  WM_DEVICECHANGE   =   537   //當(dāng)設(shè)備的硬件配置改變時發(fā)送此消息給應(yīng)用程序或設(shè)備驅(qū)動程序    
  WM_IME_STARTCOMPOSITION=   $010D   //    
  WM_IME_ENDCOMPOSITION=   $010E   //    
  WM_IME_COMPOSITION   =   $010F   //    
  WM_IME_KEYLAST   =   $010F   //    
  WM_IME_SETCONTEXT=   $0281   //    
  WM_IME_NOTIFY=   $0282   //    
  WM_IME_CONTROL   =   $0283   //    
  WM_IME_COMPOSITIONFULL   =   $0284   //    
  WM_IME_SELECT=   $0285   //    
  WM_IME_CHAR=   $0286   //    
  WM_IME_REQUEST   =   $0288   //    
  WM_IME_KEYDOWN   =   $0290   //    
  WM_IME_KEYUP   =   $0291   //    
  WM_MDICREATE=   $0220   //應(yīng)用程序發(fā)送此消息給多文檔的客戶窗口來創(chuàng)建一個MDI   子窗口    
  WM_MDIDESTROY   =   $0221   //應(yīng)用程序發(fā)送此消息給多文檔的客戶窗口來關(guān)閉一個MDI   子窗口    
  WM_MDIACTIVATE=   $0222   //應(yīng)用程序發(fā)送此消息給多文檔的客戶窗口通知客戶窗口激活另一個MDI子窗口,當(dāng)客戶窗口收到  

 
  此消息后,它發(fā)出WM_MDIACTIVE消息給MDI子窗口(未激活)激活它;    
  WM_MDIRESTORE   =   $0223   //程序發(fā)送此消息給MDI客戶窗口讓子窗口從最大最小化恢復(fù)到原來大小    
  WM_MDINEXT=   $0224   //程序發(fā)送此消息給MDI客戶窗口激活下一個或前一個窗口    
  WM_MDIMAXIMIZE=   $0225   //程序發(fā)送此消息給MDI客戶窗口來最大化一個MDI子窗口;    
  WM_MDITILE=   $0226   //程序發(fā)送此消息給MDI客戶窗口以平鋪方式重新排列所有MDI子窗口    
  WM_MDICASCADE   =   $0227   //程序發(fā)送此消息給MDI客戶窗口以層疊方式重新排列所有MDI子窗口    
  WM_MDIICONARRANGE   =   $0228   //程序發(fā)送此消息給MDI客戶窗口重新排列所有最小化的MDI子窗口    
  WM_MDIGETACTIVE   =   $0229   //程序發(fā)送此消息給MDI客戶窗口來找到激活的子窗口的句柄    
  WM_MDISETMENU   =   $0230   //程序發(fā)送此消息給MDI客戶窗口用MDI菜單代替子窗口的菜單    
  WM_ENTERSIZEMOVE=   $0231   //    
  WM_EXITSIZEMOVE   =   $0232   //    
  WM_DROPFILES=   $0233   //    
  WM_MDIREFRESHMENU   =   $0234   //    
  WM_MOUSEHOVER   =   $02A1   //    
  WM_MOUSELEAVE   =   $02A3   //    
  WM_CUT=   $0300   //程序發(fā)送此消息給一個編輯框或combobox來刪除當(dāng)前選擇的文本    
  WM_COPY   =   $0301   //程序發(fā)送此消息給一個編輯框或combobox來復(fù)制當(dāng)前選擇的文本到剪貼板    
  WM_PASTE=   $0302   //程序發(fā)送此消息給editcontrol或combobox從剪貼板中得到數(shù)據(jù)    
  WM_CLEAR=   $0303   //程序發(fā)送此消息給editcontrol或combobox清除當(dāng)前選擇的內(nèi)容;    
  WM_UNDO   =   $0304   //程序發(fā)送此消息給editcontrol或combobox撤消最后一次操作    
  WM_RENDERformAT   =   $0305;//    
  WM_RENDERALLformATS   =   $0306   //    
  WM_DESTROYCLIPBOARD   =   $0307   //當(dāng)調(diào)用ENPTYCLIPBOARD函數(shù)時發(fā)送此消息給剪貼板的所有者    
  WM_DRAWCLIPBOARD=   $0308   //當(dāng)剪貼板的內(nèi)容變化時發(fā)送此消息給剪貼板觀察鏈的第一個窗口;它允許用剪貼板觀察窗口來 

  
  顯示剪貼板的新內(nèi)容;    
  WM_PAINTCLIPBOARD   =   $0309   //當(dāng)剪貼板包含CF_OWNERDIPLAY格式的數(shù)據(jù)并且剪貼板觀察窗口的客戶區(qū)需要重畫;    
  WM_VSCROLLCLIPBOARD   =   $030A   //    
  WM_SIZECLIPBOARD=   $030B   //當(dāng)剪貼板包含CF_OWNERDIPLAY格式的數(shù)據(jù)并且剪貼板觀察窗口的客戶區(qū)域的大小已經(jīng)改變是此

消息通過剪貼板觀察窗口發(fā)送給剪貼板的所有者;    
  WM_ASKCBformATNAME=   $030C   //通過剪貼板觀察窗口發(fā)送此消息給剪貼板的所有者來請求一個CF_OWNERDISPLAY格式的剪貼板

的名字    
  WM_CHANGECBCHAIN=   $030D   //當(dāng)一個窗口從剪貼板觀察鏈中移去時發(fā)送此消息給剪貼板觀察鏈的第一個窗口;    
  WM_HSCROLLCLIPBOARD   =   $030E   //    
  此消息通過一個剪貼板觀察窗口發(fā)送給剪貼板的所有者;它發(fā)生在當(dāng)剪貼板包含CFOWNERDISPALY格式的數(shù)據(jù)并且有個事件在剪貼

板觀察窗的水平滾動條上;所有者應(yīng)滾動剪貼板圖象并更新滾動條的值;    
  WM_QUERYNEWPALETTE=   $030F   //此消息發(fā)送給將要收到焦點的窗口,此消息能使窗口在收到焦點時同時有機會實現(xiàn)他的邏輯

調(diào)色板    
  WM_PALETTEISCHANGING=   $0310   //當(dāng)一個應(yīng)用程序正要實現(xiàn)它的邏輯調(diào)色板時發(fā)此消息通知所有的應(yīng)用程序    
  WM_PALETTECHANGED   =   $0311   //此消息在一個擁有焦點的窗口實現(xiàn)它的邏輯調(diào)色板后發(fā)送此消息給所有頂級并重疊的窗口

,以此    
  來改變系統(tǒng)調(diào)色板    
  WM_HOTKEY   =   $0312   //當(dāng)用戶按下由REGISTERHOTKEY函數(shù)注冊的熱鍵時提交此消息    
  WM_PRINT=   791   //應(yīng)用程序發(fā)送此消息僅當(dāng)WINDOWS或其它應(yīng)用程序發(fā)出一個請求要求繪制一個應(yīng)用程序的一部分;    
  WM_PRINTCLIENT=   792   //    
  WM_HANDHELDFIRST=   856   //    
  WM_HANDHELDLAST   =   863   //    
  WM_PENWINFIRST=   $0380   //    
  WM_PENWINLAST   =   $038F   //    
  WM_COALESCE_FIRST   =   $0390   //    
  WM_COALESCE_LAST=   $039F   //    
  WM_DDE_FIRST=   $03E0   //    
  WM_DDE_INITIATE   =   WM_DDE_FIRST   +   0   //一個DDE客戶程序提交此消息開始一個與服務(wù)器程序的會話來響應(yīng)那個指定

的程序和主題名;    
  WM_DDE_TERMINATE=   WM_DDE_FIRST   +   1   //一個DDE應(yīng)用程序(無論是客戶還是服務(wù)器)提交此消息來終止一個會話;   

 
  WM_DDE_ADVISE   =   WM_DDE_FIRST   +   2   //一個DDE客戶程序提交此消息給一個DDE服務(wù)程序來請求服務(wù)器每當(dāng)數(shù)據(jù)項改變

時更新它    
  WM_DDE_UNADVISE   =   WM_DDE_FIRST   +   3   //一個DDE客戶程序通過此消息通知一個DDE服務(wù)程序不更新指定的項或一個特

殊的剪貼板格式的項    
  WM_DDE_ACK=   WM_DDE_FIRST   +   4   //此消息通知一個DDE(動態(tài)數(shù)據(jù)交換)程序已收到并正在處理WM_DDE_POKE,  

WM_DDE_EXECUTE,   WM_DDE_DATA,   WM_DDE_ADVISE,   WM_DDE_UNADVISE,   or   WM_DDE_INITIAT消息    
  WM_DDE_DATA   =   WM_DDE_FIRST   +   5   //一個DDE服務(wù)程序提交此消息給DDE客戶程序來傳遞個一數(shù)據(jù)項給客戶或通知客戶

的一條可用數(shù)據(jù)項    
  WM_DDE_REQUEST=   WM_DDE_FIRST   +   6   //一個DDE客戶程序提交此消息給一個DDE服務(wù)程序來請求一個數(shù)據(jù)項的值;    
  WM_DDE_POKE   =   WM_DDE_FIRST   +   7   //一個DDE客戶程序提交此消息給一個DDE服務(wù)程序,客戶使用此消息來請求服務(wù)器

接收一個未經(jīng)同意的數(shù)據(jù)項;服務(wù)器通過答復(fù)WM_DDE_ACK消息提示是否它接收這個數(shù)據(jù)項;    
  WM_DDE_EXECUTE=   WM_DDE_FIRST   +   8   //一個DDE客戶程序提交此消息給一個DDE服務(wù)程序來發(fā)送一個字符串給服務(wù)器讓它

象串行命令一樣被處理,服務(wù)器通過提交WM_DDE_ACK消息來作回應(yīng);    
  WM_DDE_LAST   =   WM_DDE_FIRST   +   8   //    
  WM_APP   =   $8000   //    
  WM_USER   =   $0400   //此消息能幫助應(yīng)用程序自定義私有消息;    
   
  /////////////////////////////////////////////////////////////////////    
  通知消息(Notification   message)是指這樣一種消息,一個窗口內(nèi)的子控件發(fā)生了一些事情,需要通    
  知父窗口。通知消息只適用于標準的窗口控件如按鈕、列表框、組合框、編輯框,以及Windows   95公    
  共控件如樹狀視圖、列表視圖等。例如,單擊或雙擊一個控件、在控件中選擇部分文本、操作控件的    
  滾動條都會產(chǎn)生通知消息。    
   
  按扭    
  BN_CLICKED   //用戶單擊了按鈕    
  BN_DISABLE   //按鈕被禁止    
  BN_DOUBLECLICKED   //用戶雙擊了按鈕    
  BN_HILITE   //用戶加亮了按鈕    
  BN_PAINT   //按鈕應(yīng)當(dāng)重畫    
  BN_UNHILITE   //加亮應(yīng)當(dāng)去掉    
   
  組合框    
  CBN_CLOSEUP   //組合框的列表框被關(guān)閉    
  CBN_DBLCLK   //用戶雙擊了一個字符串    
  CBN_DROPDOWN   //組合框的列表框被拉出    
  CBN_EDITCHANGE   //用戶修改了編輯框中的文本    
  CBN_EDITUPDATE   //編輯框內(nèi)的文本即將更新    
  CBN_ERRSPACE   //組合框內(nèi)存不足    
  CBN_KILLFOCUS   //組合框失去輸入焦點    
  CBN_SELCHANGE   //在組合框中選擇了一項    
  CBN_SELENDCANCEL   //用戶的選擇應(yīng)當(dāng)被取消    
  CBN_SELENDOK   //用戶的選擇是合法的    
  CBN_SETFOCUS   //組合框獲得輸入焦點    
   
  編輯框    
  EN_CHANGE   //編輯框中的文本己更新    
  EN_ERRSPACE   //編輯框內(nèi)存不足    
  EN_HSCROLL   //用戶點擊了水平滾動條    
  EN_KILLFOCUS   //編輯框正在失去輸入焦點    
  EN_MAXTEXT   //插入的內(nèi)容被截斷    
  EN_SETFOCUS   //編輯框獲得輸入焦點    
  EN_UPDATE   //編輯框中的文本將要更新    
  EN_VSCROLL   //用戶點擊了垂直滾動條消息含義    
   
  列表框    
  LBN_DBLCLK   //用戶雙擊了一項    
  LBN_ERRSPACE   //列表框內(nèi)存不夠    
  LBN_KILLFOCUS   //列表框正在失去輸入焦點    
  LBN_SELCANCEL   //選擇被取消    
  LBN_SELCHANGE   //選擇了另一項    
  LBN_SETFOCUS   //列表框獲得輸入焦點

posted @ 2009-06-09 15:49 似水之心 閱讀(1690) | 評論 (0)編輯 收藏

自認為注釋已經(jīng)很詳細了,沒有什么可說的,以后再用的時候如果還有哪不明白的就當(dāng)長教訓(xùn)了

BOOL CMYDlg::PrintPic(CString strFileName/*打印的圖片文件名,帶路徑*/,int iCopies/*打印次數(shù)*/,CString strPrintName/*指定打印機名,如果只有一臺打印機可忽略,相應(yīng)的注釋下面的一些代碼*/)

 CDC dc;
 CPrintDialog printDlg(FALSE);
 HGLOBAL hDevMode;
 HGLOBAL hDevNames;

//以下為判斷紙型,m_strPrintSize為類的成員變量

 short paperWidth = 0;
 short paperHeight = 0;
 if(0==m_strPrintSize.CompareNoCase("a3"))
 {
  paperWidth = 2970;
  paperHeight = 4200;
 }
 if(0==m_strPrintSize.CompareNoCase("a4"))
 {
  paperWidth = 2100;
  paperHeight = 2970;
 }
 if(0==m_strPrintSize.CompareNoCase("a5"))
 {
  paperWidth=1480;
  paperHeight=2100;
 }
 if(0==m_strPrintSize.CompareNoCase("a6"))
 {
  paperWidth = 1050;
  paperHeight = 1480;
 }

 BSTR   bstr=strFileName.AllocSysString();
 Bitmap* pPicture = new Bitmap(bstr);
 HBITMAP hBitmap;//創(chuàng)建bmp的句柄
 pPicture->GetHBITMAP(NULL,&hBitmap);//獲取句柄
 BITMAP bitmap;
 ::GetObject(hBitmap,sizeof(BITMAP),&bitmap);


 printDlg.GetDefaults();
 DEVMODE FAR *pDevMode=(DEVMODE FAR *)::GlobalLock(printDlg.m_pd.hDevMode);
 pDevMode->dmFields = pDevMode->dmFields | DM_PAPERSIZE;
 pDevMode->dmPaperSize = DMPAPER_USER;    //將打印紙設(shè)置為自定義DMDO_90

/* if (bitmap.bmHeight<bitmap.bmWidth)
 {
  pDevMode->dmPaperWidth = paperHeight;
  pDevMode->dmPaperLength = paperWidth;
 }
 else
 {*/
  pDevMode->dmPaperWidth = paperWidth;
  pDevMode->dmPaperLength = paperHeight;
// }

 ::GlobalUnlock(printDlg.m_pd.hDevMode);

 ::DeleteObject(hBitmap);

 CPrintInfo Info;//
 if(GetPrinterDevice(strPrintName.GetBuffer(0), &hDevNames, &hDevMode))
 {
  printDlg.m_pd.hDevMode=hDevMode;
  printDlg.m_pd.hDevNames = hDevNames;
 }

 dc.Attach(printDlg.CreatePrinterDC()/*這里很重要,一定要CreatePrinterDC,要不然還是打印機默認的紙型*/); // Attach a printer DC 讓HANDLE連接到dc上
 dc.m_bPrinting = TRUE;
 CString strTitle; // Get the application title ?
 strTitle.LoadString(AFX_IDS_APP_TITLE);
 DOCINFO di; // Initialise print document details DOCINFO中有相關(guān)的打印信息
 
 ::ZeroMemory (&di, sizeof (DOCINFO));
 di.cbSize = sizeof (DOCINFO);
 di.lpszDocName = strFileName;//設(shè)置標題

 for (int i=0;i<iCopies;i++)
 {
  BOOL bPrintingOK = dc.StartDoc(&di); // Begin a new print job 開始打印
  
  // Get the printing extents and store in the m_rectDraw field of a
  // CPrintInfo object  
  Info.m_rectDraw.SetRect(0,0,dc.GetDeviceCaps(HORZRES),dc.GetDeviceCaps(VERTRES));//設(shè)置范圍

  Info.SetMaxPage (1);
  OnPrint(&dc, &Info,strFileName); // 往DC上畫圖片,具體實現(xiàn)在下面給出
  //OnEndPrinting(&dc, &Info); // 結(jié)束打印
  if (bPrintingOK)
   dc.EndDoc(); // end a print job
  else
   dc.AbortDoc(); // abort job. 
 }
 dc.Detach(); // detach the printer DC
 delete pPicture;
 pPicture=NULL;
 return TRUE;
}


相關(guān)函數(shù):
void OnPrint(CDC* pdc,CPrintInfo * lParam,CString strFileName1)
{
 CDC* pDC   = pdc;
 CPrintInfo* pInfo = (CPrintInfo *)lParam;
 
 CFont DataFont;
 DataFont.CreatePointFont(120,"宋體",pDC);
 
 CString strFileName=strFileName1;
 
 BSTR   bstr=strFileName.AllocSysString();
 Bitmap* pPicture = new Bitmap(bstr);
 pPicture->RotateFlip(Gdiplus::Rotate90FlipNone);
 HBITMAP hBitmap;//創(chuàng)建bmp的句柄
 pPicture->GetHBITMAP(NULL,&hBitmap);//獲取句柄
 BITMAP bitmap;
 ::GetObject(hBitmap,sizeof(BITMAP),&bitmap);
 double dScale=(double)pInfo->m_rectDraw.Width()/bitmap.bmWidth;
 //int nScaledWidth=m_cxWidth;
 int nScaledHeight=(int)(bitmap.bmHeight*dScale);
 
 HDC dcMem;
 dcMem=::CreateCompatibleDC(pDC->m_hDC);
 HBITMAP hOldBmp=(HBITMAP)::SelectObject(dcMem,hBitmap);
 
 CRect r = pInfo->m_rectDraw;
 SizeToPlace(STP_FIX, r, CRect(0,0,bitmap.bmWidth, bitmap.bmHeight));//這個函數(shù)沒有給出,可以自己寫一下,注釋掉也行,功能就是調(diào)整尺寸的
 int nVertCenterPos = pDC->GetDeviceCaps (VERTRES) / 2;
 ::StretchBlt(pDC->m_hDC, r.left, r.top, r.Width(), r.Height(),
  dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
 
 
 ::SelectObject(dcMem,hOldBmp);
 ::DeleteDC(dcMem);
 ::DeleteObject(hBitmap);
 delete pPicture;
 pPicture=NULL;

}
BOOL GetPrinterDevice(LPTSTR pszPrinterName, HGLOBAL* phDevNames, HGLOBAL* phDevMode)//從MSDN復(fù)制來的,獲取打印機設(shè)備
{
    // if NULL is passed, then assume we are setting app object's
    // devmode and devnames
    if (phDevMode == NULL || phDevNames == NULL)
        return FALSE;
 
    // Open printer
    HANDLE hPrinter;
    if (OpenPrinter(pszPrinterName, &hPrinter, NULL) == FALSE)
        return FALSE;
 
    // obtain PRINTER_INFO_2 structure and close printer
    DWORD dwBytesReturned, dwBytesNeeded;
    GetPrinter(hPrinter, 2, NULL, 0, &dwBytesNeeded);
    PRINTER_INFO_2* p2 = (PRINTER_INFO_2*)GlobalAlloc(GPTR,
        dwBytesNeeded);
    if (GetPrinter(hPrinter, 2, (LPBYTE)p2, dwBytesNeeded,
  &dwBytesReturned) == 0) {
  GlobalFree(p2);
  ClosePrinter(hPrinter);
  return FALSE;
    }
    ClosePrinter(hPrinter);
 
    // Allocate a global handle for DEVMODE
    HGLOBAL  hDevMode = GlobalAlloc(GHND, sizeof(*p2->pDevMode) +
  p2->pDevMode->dmDriverExtra);
    ASSERT(hDevMode);
    DEVMODE* pDevMode = (DEVMODE*)GlobalLock(hDevMode);
    ASSERT(pDevMode);
 
    // copy DEVMODE data from PRINTER_INFO_2::pDevMode
    memcpy(pDevMode, p2->pDevMode, sizeof(*p2->pDevMode) +
  p2->pDevMode->dmDriverExtra);
    GlobalUnlock(hDevMode);
 
    // Compute size of DEVNAMES structure from PRINTER_INFO_2's data
    DWORD drvNameLen = lstrlen(p2->pDriverName)+1;  // driver name
    DWORD ptrNameLen = lstrlen(p2->pPrinterName)+1; // printer name
    DWORD porNameLen = lstrlen(p2->pPortName)+1;    // port name
 
    // Allocate a global handle big enough to hold DEVNAMES.
    HGLOBAL hDevNames = GlobalAlloc(GHND,
        sizeof(DEVNAMES) +
        (drvNameLen + ptrNameLen + porNameLen)*sizeof(TCHAR));
    ASSERT(hDevNames);
    DEVNAMES* pDevNames = (DEVNAMES*)GlobalLock(hDevNames);
    ASSERT(pDevNames);
 
    // Copy the DEVNAMES information from PRINTER_INFO_2
    // tcOffset = TCHAR Offset into structure
    int tcOffset = sizeof(DEVNAMES)/sizeof(TCHAR);
    ASSERT(sizeof(DEVNAMES) == tcOffset*sizeof(TCHAR));
 
    pDevNames->wDriverOffset = tcOffset;
    memcpy((LPTSTR)pDevNames + tcOffset, p2->pDriverName,
        drvNameLen*sizeof(TCHAR));
    tcOffset += drvNameLen;
 
    pDevNames->wDeviceOffset = tcOffset;
    memcpy((LPTSTR)pDevNames + tcOffset, p2->pPrinterName,
        ptrNameLen*sizeof(TCHAR));
    tcOffset += ptrNameLen;
 
    pDevNames->wOutputOffset = tcOffset;
    memcpy((LPTSTR)pDevNames + tcOffset, p2->pPortName,
        porNameLen*sizeof(TCHAR));
    pDevNames->wDefault = 0;
 
    GlobalUnlock(hDevNames);
    GlobalFree(p2);   // free PRINTER_INFO_2
 
    // set the new hDevMode and hDevNames
    *phDevMode = hDevMode;
    *phDevNames = hDevNames;
    return TRUE;
}

posted @ 2009-06-08 09:58 似水之心 閱讀(8267) | 評論 (0)編輯 收藏
分隔線以上為轉(zhuǎn)載:


問題:vc2005里面編譯的程序 在xp下運行報

"由于應(yīng)用程序配置不正確,應(yīng)用程序未能啟動。重新安裝應(yīng)用程序可能會糾正這個問題。"

起因: 代碼以前是用vc6寫的 后來用vc2005 直接升級使用。

分析:見ck寫的 http://www.panzhishi.com/classyk/article.asp?id=4

看了 ck的文章 照著他的方法 還不行,丫 難道人品問題。后來又找到一篇文章說 加個 #undef _AFXDLL 呵呵 還真行


解決方法:

  1. 改變運行時庫 多線程(/mt)

  2. 在stdafx.h頂上面 加 #undef _AFXDLL

剛剛在網(wǎng)上看到一個文章 講得很細 http://www.cnblogs.com/riky/archive/2007/05/11/743310.html 還沒試過

再次發(fā)現(xiàn): 帶上必要的dll 再帶上Microsoft.VC80.MFC.manifest Microsoft.VC80.CRT.manifest 可以運行。。不曉得正確與否。


-----------------------------------------------------華麗的分隔線----------------------------------

遇到這個問題了,網(wǎng)上一般的說法就像上面的,但是在我的機器上試了很久也沒解決。
我的情況如下:因為VS2005 SP1編譯出來的程序需要運行庫支持(Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86\vcredist_x86.exe),而又不想帶上它,所以把VS2005降為無補丁版,重新生成了項目,結(jié)果還會提示上面的錯誤,安裝了帶SP1版本的運行庫馬上運行正常,看來還是項目里面用到了SP1的運行庫,可以項目都是用不帶補丁的版本重新生成的,怎么還要用到SP1的運行庫呢,經(jīng)過了大半天的測試,終于找到了原因,原來項目里面引用了幾個LIB庫,是原來用SP1版本的編輯器生成出來的,即使重新生成的項目,也還是需要SP1版本的運行庫支持的。
重新編譯所有的LIB文件,重新生成項目,連接,在沒有安裝SP1運行庫的機器上運行,一卻正常
posted @ 2009-02-12 14:45 似水之心 閱讀(30456) | 評論 (13)編輯 收藏
僅列出標題
共2頁: 1 2 

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(2)

隨筆檔案

文章檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            精品成人一区| 99国产成+人+综合+亚洲欧美| 亚洲高清免费视频| 黄色亚洲大片免费在线观看| 国产人成精品一区二区三| 国产精品vip| 国产日韩在线不卡| 亚洲激情欧美| 亚洲欧洲一区二区三区久久| 亚洲成人资源| 亚洲黄色影院| 在线一区二区日韩| 午夜日本精品| 久久午夜av| 亚洲黑丝一区二区| 亚洲一区二区三区四区五区午夜 | 麻豆av福利av久久av| 久久国产精品久久精品国产| 91久久极品少妇xxxxⅹ软件| 99在线观看免费视频精品观看| 欧美精品国产精品| 国产精品日韩高清| 亚洲第一网站| 亚洲欧美日韩国产中文在线| 麻豆91精品| 在线一区二区三区做爰视频网站| 国产精品久久久久久久久久免费 | 久久伊伊香蕉| 欧美日韩视频在线观看一区二区三区| 国产精品一区免费观看| 最新国产乱人伦偷精品免费网站| 亚洲欧美日韩一区| 亚洲国产毛片完整版 | 国产精品久久久久久久久搜平片| 黄色成人免费观看| 亚洲欧美一区二区激情| 国产精品久久久久久久电影 | 亚洲激情六月丁香| 99亚洲一区二区| 久久精品人人做人人爽| 国产精品国产三级国产专播精品人| 国产自产女人91一区在线观看| 在线视频精品一| 欧美大片在线观看一区| 亚洲在线黄色| 欧美视频网址| 一区二区三区国产在线| 欧美国产在线观看| 久久野战av| 雨宫琴音一区二区在线| 国产热re99久久6国产精品| 一区二区三区国产在线观看| 欧美激情1区2区3区| 久久久精品999| 国产一区二区三区精品久久久| 欧美一区2区三区4区公司二百| 一区二区三区欧美在线| 国产精品久久久久久av福利软件| 亚洲日本中文字幕| 欧美国产第一页| 美女亚洲精品| 亚洲精品一二三| 最近中文字幕日韩精品| 亚洲精品日韩激情在线电影 | 美女主播精品视频一二三四| 红桃av永久久久| 久久蜜桃资源一区二区老牛| 久久动漫亚洲| 精品动漫3d一区二区三区免费版| 久久久久久**毛片大全| 午夜宅男久久久| 中文欧美字幕免费| 国产九九视频一区二区三区| 欧美中文字幕不卡| 久久久久免费| 亚洲精品看片| 国产日韩欧美视频在线| 国产精品一卡| 久久久久久久综合| 久久精品女人| 亚洲精选国产| 亚洲在线观看免费| 国产一区二区三区在线观看免费 | 一本色道久久综合亚洲精品小说 | 欧美在线观看一区| 久久成人av少妇免费| 国产精品久久一卡二卡| 狂野欧美性猛交xxxx巴西| 亚洲国产日韩一区| 一二三四社区欧美黄| 国产一区二区精品久久| 欧美成人激情在线| 久久久成人网| 亚洲第一黄色| 国产精品日本欧美一区二区三区| 久久久久久亚洲精品中文字幕 | 99re6这里只有精品| 亚洲视频免费在线观看| 精品88久久久久88久久久| 亚洲精品日韩在线| 精品成人一区| 亚洲午夜av在线| 最新日韩在线| 欧美一区二区视频观看视频| 日韩视频在线观看国产| 亚洲欧美精品suv| 久久男女视频| 久久国产精品99国产精| 欧美日韩国产美女| 欧美阿v一级看视频| 国产美女一区| av成人免费在线观看| 欧美成人综合在线| 久久aⅴ国产紧身牛仔裤| 香蕉亚洲视频| 香蕉亚洲视频| 亚洲欧美日韩爽爽影院| 亚洲国产黄色| 国产人成精品一区二区三| 最新日韩欧美| 在线观看中文字幕亚洲| 亚洲男女自偷自拍| 99视频有精品| 久久只精品国产| 久久久国际精品| 国产精品欧美风情| 日韩视频―中文字幕| 久久亚洲国产精品一区二区| 亚洲欧美日韩国产另类专区| 欧美另类高清视频在线| 亚洲国产婷婷综合在线精品 | 亚洲区国产区| 欧美在线黄色| 香蕉久久夜色精品国产| 国产亚洲精品一区二区| 亚洲小视频在线| 亚洲一区二区日本| 欧美午夜免费影院| 亚洲自拍偷拍一区| 亚洲精品三级| 一区国产精品| 国产精品99久久久久久宅男 | 久久久www| 欧美日韩国产综合在线| 亚洲经典视频在线观看| 亚洲国产视频a| 免费一级欧美片在线播放| 狠狠v欧美v日韩v亚洲ⅴ| 欧美在线国产| 欧美激情亚洲精品| 亚洲精选一区| 欧美特黄一级大片| 亚洲深夜激情| 久久久水蜜桃| 久久精品国产99| 国产乱码精品| 久久露脸国产精品| 久久天天躁狠狠躁夜夜爽蜜月| 影音先锋日韩精品| 欧美激情第9页| 亚洲特级毛片| 欧美ab在线视频| 亚洲深夜av| 国产婷婷97碰碰久久人人蜜臀| 久久久高清一区二区三区| 亚洲二区视频在线| 亚洲一区二区三区久久| 国内精品久久久久久久影视蜜臀| 久久野战av| 亚洲手机在线| 欧美不卡在线| 亚洲免费小视频| 久久精品一区二区三区四区 | 老司机免费视频久久| 欧美成人午夜影院| 亚洲欧美日韩区| 久久精品国产清高在天天线| 国产视频在线观看一区二区三区 | 国产精品理论片| 久久成人免费网| 日韩午夜免费| 乱中年女人伦av一区二区| 亚洲一区精彩视频| 亚洲成在人线av| 国产精品一区久久久| 欧美精品福利视频| 久久精品综合| 午夜精品视频网站| aa国产精品| 亚洲区一区二| 久久久福利视频| 午夜精品久久久久久久久| 亚洲精品久久久久久久久久久久久 | 国产三级欧美三级日产三级99| 猛男gaygay欧美视频| 欧美一区二区三区电影在线观看| 亚洲免费观看高清在线观看 | 中日韩美女免费视频网址在线观看 | 欧美激情网友自拍| 欧美在线视频观看|