1. 程式人生 > >[Visual Studio C++] [MFC] ( WPARAM wParam,LPARAM lParam) 資訊講解

[Visual Studio C++] [MFC] ( WPARAM wParam,LPARAM lParam) 資訊講解

一.前言        

在Win32中,(wParam ,lParam)是用來傳遞訊息資料的最常用的手段. 比如,

  • 對按鍵訊息來說,滑鼠的X和Y的座標被壓縮排lParam中 。
  • 對MFC來說,訊息可以用多樣的型別引數來傳遞。
  • 對使用者自定義訊息來說,只能用wParam和lParam來傳遞。     

二.講解

      windows的訊息具有以下兩個引數:
  (1)字引數(wParam)
  (2)長引數(lParam)
  字引數和長引數都是32位整數,用於提供訊息的附帶訊息,是訊息傳遞過程中引數的載體。附加資訊的訊息號取決於訊息號。

                                                  常用(wParam ,lParam)資訊表

訊息

說明

wParam

lParam

WM_PAINT

   

低位是客戶區的寬

高位是客戶區的高

WM_VSCROLL

WM_HSCROLL

視窗滾動條訊息

低位指出了滑鼠對滾動條的操作

 

WM_SYSKEYDOWN

WM_SYSKEYUP

WM_KEYUP

WM_KEYDOWN

擊鍵訊息

虛擬鍵程式碼

分為6個域,有重複計數、環境程式碼、鍵的先前狀態等

WM_CHAR

WM_DEADCHAR

WM_SYSCHAR

WM_SYSDEADCHAR

字元訊息

ANSI或Unicode字元程式碼

分為6個域,有重複計數、環境程式碼、鍵的先前狀態等

WM_LBUTTONDOWN

WM_LBUTTONUP

WM_RBUTTONDOWN

WM_RBUTTONUP

WM_MBUTTONDOWN

WM_MBUTTONUP

客戶區滑鼠訊息

指示滑鼠鍵及Shift和Ctrl鍵的狀態

滑鼠的客戶區座標

 

非客戶區滑鼠訊息

指明移動或者單擊滑鼠鍵的非客戶區位置,以HT開頭

滑鼠的螢幕座標

WM_MOUSEWHEEL

滑鼠輪滾動訊息

低位表明滑鼠鍵和Shift與Ctrl鍵的狀態

高位指出了滾輪導致螢幕滾動幾行

滑鼠的螢幕位置

WM_TIMER

計時器訊息

計時器的ID值

0

WM_COMMAND

按鈕

低位是子視窗ID,高位是通知碼

子視窗控制代碼

WM_SETFOCUS

焦點訊息

正在失去焦點的視窗的控制代碼

 

WM_KILLFOCUS

焦點訊息

即將接收輸入焦點的視窗的控制代碼

 

WM_COMMAND

編輯控制

低位是子視窗ID,高位是通知碼

子視窗控制代碼

WM_COMMAND

列表框

低位是子視窗ID,高位是通知碼

子視窗控制代碼

WM_INITMENU

 

主選單控制代碼

0

WM_MENUSELECT

選單跟蹤訊息

低位是選中項選單的ID或者彈出式選單的控制代碼,高位是選擇標識

選中項的選單控制代碼

WM_INITMENUPOPUP

準備顯示一個彈出式選單時產生

彈出式選單的控制代碼

低位是彈出式選單的索引,如果該選單是系統選單,那麼高位是1,否則為0.

 

WM_COMMAND

選中選單後產生

低位是擊中選單的ID

高位是0

0

WM_SYSCOMMAND

使用者從系統選單中選擇一個啟用的選單項

選單的ID

0如果該訊息是由按滑鼠產生的,那麼是滑鼠的螢幕座標。

WM_COMMAND 

加速鍵訊息

低位是加速鍵ID

高位是1

0