c# 调用 win32 API的 SendMessage 函数 ,里面的属性用法?

[复制链接]
查看11 | 回复2 | 2011-2-17 14:30:28 | 显示全部楼层 |阅读模式
函数原型:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);

参数:

hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。

Msg:指定被发送的消息。

wParam:指定附加的消息指定信息。

IParam:指定附加的消息指定信息。
上面是API上面写的东西,请问:
WPARAM 和 LPARAM各是什么类型?
wParam 和IParam 都是干什么用的?

回复

使用道具 举报

千问 | 2011-2-17 14:30:28 | 显示全部楼层
SendMessage 这个消息比较特别,因为它的参数返回值会根据不同的消息而不同首先来解析一下这个函数第一个参数HWND hWnd ,是要将这个消息发送的对象的句柄,hwnd一般指窗口句柄,但这里的窗口是广义上的,一个按钮,一个文本框,一个列表框等等控件这些都可以看成按钮,所以传它们的句柄也可以。第二个参数UINT Msg就是要发送的消息是什么, 窗口消息一般都以WM开头,意思是WindowMessage 取了2个字母, 而按钮消息一般以BM开头即ButtonMessage,静态类的是STM,列表框是LBM 等等。 总之你要发什么消息,这里就写什么消息。第三个和第四个参数是针对消息的附加参数。 这2个参数会参着所传入的消息值的不同
回复

使用道具 举报

千问 | 2011-2-17 14:30:28 | 显示全部楼层
就是给目标窗口hwnd发送一个消息Msg。消息是什么,就是一个约定好了的数字(UINT无符号整形)。用宏定义换成人容易记住的名字,如WM_SETFOCUS,WM_PAINT,WM_SIZE等等,以及你自己约定的新消息(不要和预定义的重复就好)WPARAM和LPARAM是你传给处理这个消息的函数的参数.它的使用很灵活,不同的消息有不同的约定.你可以查找MS
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行