捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >API档案 > 正文
25 2017.05

SendMessageTimeout

点击次数:1310 更新时间:2017-5-25 11:19:07  【打印此页

函数功能:

SendMessageTimeout 函数发送指定消息给一个或多个窗口。

SendMessageTimeout 函数具备超时限制的功能。


API 函数原型:

LRESULT WINAPI SendMessageTimeout(
  _In_      HWND       hWnd,
  _In_      UINT       Msg,
  _In_      WPARAM     wParam,
  _In_      LPARAM     lParam,
  _In_      UINT       fuFlags,
  _In_      UINT       uTimeout,
  _Out_opt_ PDWORD_PTR lpdwResult
);


参数解析:

参数

含义

hWnd

1. 指定接收消息的窗口句柄
2. 如果该参数的值是 HWND_BROADCAST((HWND)0xffff),那么消息将发送给所有的顶层窗口(包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息就是不发送给子窗口)。直到每一个窗口过程处理完消息或指定的超时周期结束,函数才会返回。因此,函数最长的等待时间应该是 uTimeout 参数和顶层窗口数量的乘积

Msg

1. 指定将被发送的消息
2. 请参考:Windows 常用消息及含义

wParam

消息的附加信息

lParam

消息的附加信息

fuFlags

指定该函数的行为,该参数可以是以下一个或多个值的组合:

含义

SMTO_ABORTIFHUNG

如果接收消息的线程出现不响应或挂起状态时,直接返回而不等待超时周期结束

SMTO_BLOCK

在函数返回之前,阻止调用线程处理其他请求(比如非队列消息)

SMTO_NORMAL

在调用线程等待函数返回时,不被阻止它处理其他的请求

SMTO_NOTIMEOUTIFNOTHUNG

只要接收消息的线程在处理消息(没有被挂起),函数的返回不受超时周期的约束

SMTO_ERRORONEXIT

在消息被处理的过程中,如果接收消息的窗口被销毁或所属的线程已经结束,该函数返回 0

uTimeout

1. 指定超时周期,单位是毫秒
2. 对于广播消息,每个窗口可以使用全部超时周期(即每个超时周期和窗口个数的乘积)
3. 例如你指定超时周期是 5 秒钟,然后有 3 个顶层窗口未能处理消息,那么最多就有 15 秒的延迟

lpdwResult

消息的处理结果



返回值:

1. 如果函数调用成功,返回值是非 0(如果使用 HWND_BROADCAST,SendMessageTimeout 函数不提供单个窗口的超时周期信息);

2. 如果函数调用失败或超时,返回值是 0(调用 GetLastError 函数的返回值是 ERROR_TIMEOUT,则说明是函数超时)。


备注:

1. 函数调用指定窗口的窗口过程,如果指定的窗口属于不同线程,函数在窗口过程处理完消息或等待超时周期结束时返回;如果接收消息的窗口和当前线程属于同一队列,那么直接调用窗口过程并忽略超时限制。

2. 如果接收消息的线程在 5 秒内没有调用 GetMessage 函数或其他类似函数,则该函数认为其没响应。

3. 系统只对系统级的消息(0 ~ WM_USER-1)进行封送处理。发送自定义消息(>= WM_USER)到另一个进程,你需要自己对消息进行封送处理。

提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:1310 更新时间:2017-5-25 11:19:07  【打印此页

上一条:SendMessageCallback

下一条:SendNotifyMessage

关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修