在SendMessage的问题 ( 积分: 20 )

  • 主题发起人 主题发起人 flyerer1
  • 开始时间 开始时间
F

flyerer1

Unregistered / Unconfirmed
GUEST, unregistred user!
它在Windows单元中是这样声明的:
type
TMsg = packed record
hwnd: HWND; / /窗口句柄
message: UINT; / /消息常量标识符
wParam: WPARAM ; // 32位消息的特定附加信息
lParam: LPARAM ; // 32位消息的特定附加信息
time: DWORD; / /消息创建时的时间
pt: TPoint; / /消息创建时的鼠标位置
end;

我不明白wParam和lParam应该是什么值?
 
它在Windows单元中是这样声明的:
type
TMsg = packed record
hwnd: HWND; / /窗口句柄
message: UINT; / /消息常量标识符
wParam: WPARAM ; // 32位消息的特定附加信息
lParam: LPARAM ; // 32位消息的特定附加信息
time: DWORD; / /消息创建时的时间
pt: TPoint; / /消息创建时的鼠标位置
end;

我不明白wParam和lParam应该是什么值?
 
附加消息,根据Message的不同意义不同。具体要看某个消息的定义了。
 
具体消息具体分析看msdn,message
 
比如说,如果一个进程需要给另一个进程传递某些消息,就可以通过wParam或者lParam传递某个信息,一个传值,一个传递确认消息。
 
能给一个例子吗?
 
var
Data: CopyDataStruct;
MsgText: PChar;
begin
MsgText := 'TextToSend';
with Data do
begin
dwData := 100;
lpData := MsgText;
cbData := Length(MsgText);
end;
SendMessage(Handle, WM_COPYDATA, Handle, Integer(@Data)); //Integer(@Data)就是数据,Handle是句柄,分别是lparam、wparam
end;
 
多人接受答案了。
 

Similar threads

后退
顶部