将值传递给同时接受 WPARAM 和 LPARAM 参数的函数时,我传递其中的哪一个参数是否重要?有人告诉我,如果我使用 Windows x64,我应该使用 WPARAM;这是真的?
最佳答案
发送消息时,WPARAM
和 LPARAM
参数根据消息有特定的解释。您需要以您发送的消息期望它们传递的方式传递这些参数。如果您正在定义自己的消息(可能通过 WM_USER
、WM_APP
或 RegisterWindowMessage
的偏移量),那么您显然有更多的自由度。
In the days of 16-bit Windows ,WPARAM
是 16 位字,而 LPARAM
是 32 位长。这些区别在 Win32 中消失了。它们都变成了 32 位值。
根据this , LPARAM
定义为 LONG_PTR
,在 64 位 Windows 中是一个有符号的 64 位值。 WPARAM
定义为 UINT_PTR
,在 64 位 Windows 中是一个无符号的 64 位值。如果您要定义自己的消息,则可能需要相应地分配其参数。
关于c++ - WPARAM 和 LPARAM 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6339793/