无忧编程_ASP.NET  / C# / PHP 程序员的软件世界

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 43869|回复: 1

PostMessage:Windows API(应用程序接口) 中的一个常用函数

[复制链接]

212

主题

238

帖子

956

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
956
发表于 2016-2-26 21:02:06 | 显示全部楼层 |阅读模式
PostMessage:Windows API(应用程序接口) 中的一个常用函数:
PostMessage
PostMessage是Windows API(应用程序接口) 中的一个常用函数,用于将一条消息放入到消息队列中。
中文名 PostMessage Windows NT 3.1 Windows 95 Windows ET 1.0及以上版本
目录
1 WindowsAPI
▪ 函数功能
▪ 函数原型
▪ 参数说明
▪ 使用信息
▪ C语言调用范例
2 HTML5方法
WindowsAPI编辑
函数功能

该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。消息队列里的消息通过调用GetMessage和PeekMessage取得。
函数原型

1
BOOL WINAPI PostMessage(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam);
参数说明

hWnd:其窗口程序接收消息的窗口的句柄。可取有特定含义的两个值:
HWND_BROADCAST:消息被寄送到系统的所有顶层窗口,包括无效或不可见的非自身拥有的窗口、 被覆盖的窗口和弹出式窗口。消息不被寄送到子窗口
NULL:此函数的操作和调用参数dwThread设置为当前线程的标识符PostThreadMessage函数一样
Msg:指定被寄送的消息。
wParam:指定附加的消息特定的信息。
IParam:指定附加的消息特定的信息。
返回值:如果函数调用成功,返回非零,否则函数调用返回值为零
使用信息

Windows NT: 3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;
头文件:winuser.h;
输入库:user32.lib;
Unicode:在Windows NT环境下以Unicode和ANSI方式实现。
C语言调用范例

下面的示例演示如何使用 PostMessage 函数向专用窗口发布消息。
假设您定义了名为 WM_COMPLETE 的专用窗口消息:

#defineWM_COMPLETE(WM_USER+0)
//您可以可以使用如下的代码发布消息到创建了指定的窗口的线程的消息队列中
WaitForSingleObject(pparams->hEvent,INFINITE);
lTime=GetCurrentTime();
PostMessage(pparams->hwnd,WM_COMPLETE,1,lTime);
HTML5方法编辑
在HTML5中新增了postMessage方法,postMessage可以实现跨文档消息传输(Cross Document Messaging),Internet Explorer 8, Firefox 3, Opera 9, Chrome 3和 Safari 4都支持postMessage。
该方法可以通过绑定window的message事件来监听发送跨文档消息传输内容。

windows .net(C#+MSSQL) linux(php+mysql)  
回复

使用道具 举报

212

主题

238

帖子

956

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
956
 楼主| 发表于 2016-2-26 22:56:22 | 显示全部楼层
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr PostMessage(IntPtr hWnd, int msg, int wParam, int lParam);
  
调用:PostMessage(句柄, 0x0012, 0, 0);
windows .net(C#+MSSQL) linux(php+mysql)  
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|软件编程 Inc.  

GMT+8, 2017-7-27 10:29 , Processed in 0.181000 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表