日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

关于wParam和lParam

發布時間:2023/12/13 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于wParam和lParam 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 在VC的函數參數中常出現WPARAM和LPARAM,這兩個有什么特殊意義么?它們的含義是不是要事先定義?

????????? WPARAM和LPARAM一般在消息里面用的很多,其實沒有特殊的含義的。??? 是兩普通的變量 。

???????? 是怎樣通過wParam,lParam傳參數的呢?有時候表示點的坐標,有時表示控件的ID, 是不是事先定義好的?

??????? WPARAM 是32位無符號數,LPARAM ==long?????????? 是的,針對不同消息,wParam,lParam代表不同意義

?????? 一般情況下,你通過消息機制進行通信的話,lparam和wparam可以用來傳遞你的參數,比如數據的指針和數據的長度等等!

???????? 在Win32中,wParam lParam是用來傳遞消息數據的最常用的手段.?? 比如,對按鍵消息來說,鼠標的X和Y的坐標被壓縮進lParam中對MFC來說,消息可以用多樣的類型參數來傳遞,對用戶自定義消息來說,只能用wParam和lParam來傳遞。??

??????? param是parameter的意思?? wParam和lParam都作為函數的參數?? 只不過后者是16位,前者在win16中是16位,在win32中是32位??? 在windef.h中,有他們的定義 如下:?
typedef UINT WPARAM;?
typedef LONG LPARAM;??

在Win32 SDK中消息本身是作為一個結構體記錄傳遞給應用程序的,這個記錄中包含了消息的類型以及其他信息。這個記錄類型叫做MSG,它在window中是這樣聲明的:?
typedef struct tagMSG { // msg?
HWND hwnd; //窗口句柄?
UINT message; //消息常量標識符?
WPARAM wParam; //32位消息的特定附加信息,具體表示什么處決于message?
LPARAM lParam; //32位消息的特定附加信息,具體表示什么處決于message?
DWORD time; //消息創建時的時間?
POINT pt; //消息創建時的鼠標位置?
} MSG;?

hwnd 接收消息的32位窗口句柄。窗口可以是任何類型的屏幕對象, 因為Win32能夠維護大多數可視對象的句柄(窗口、對話框、按鈕、編輯框等)。?
message 用于區別其他消息的常量值,這些常量可以是Windows單元中預定義的常量,也可以是自定義的常量。?
wParam 通常是一個與消息有關的常量值,也可能是窗口或控件的句柄。?
lParam 通常是一個指向內存中數據的指針。?

由于wParam,lParam和指針都是32位的,需要時可以強制類型轉換。具體表示什么,與message相關,他們是事先定義好的。 如果自定義消息:#define WM_MYMESSAGE WM_USER+100,需確定wParam,lParam的意義?? (假設wParam=0時發送數據,wParam=1時接收數據,lParam為CMyClass* 指針,指向一個CMyClass對象,準備要發送的數據或接收數據 發送WM_MYMESSAGE時 SendMessage(hwnd,WM_MYMESSAGE,0,pMyClassObject)?? 接收消息的窗口,接收WM_MYMESSAGE中(CMyClass*)lParam參數即pMyClassObject傳過來的數據

總結

以上是生活随笔為你收集整理的关于wParam和lParam的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。