c++中消息函数(1)

原创 2012年03月22日 22:23:49

下面列出来c++中的消息函数,分别进行介绍:

l      BroadcastSystemMessage

此函数发送消息给指定的接收者,接收者可以是应用程序、可安装的驱动、网络驱动、系统级别的设备驱动或者任何系统部件的组合。

longBroadcastSystemMessage(

  DWORD dwFlags,           // broadcast option

  LPDWORD lpdwRecipients,  // recipients

  UINT uiMessage,          // message

  WPARAM wParam,           // first message parameter

  LPARAM lParam            // second message parameter

);

dwFlags:

       指定广播的选项,这个参数可以是下面一个或者多个值。

      

解释

BFS_ALLOWSFW

Windows2000:当处理消息时,可以让接收者设置窗体的前景色。

BFS_FLUSHDISK

在每个接受者处理消息后刷新磁盘、

BFS_FORCEIFHUNG

继续广播消息,即使超时或者一个接收者被挂起

BSF_IGNORECURRENTTASK

不发送消息到属于当前任务的窗口,这样可以阻止应用接收自己的消息。

BSF_NOHANG

迫使一个挂起应用超时,如果其中的一个接收者超时,不再广播消息。

BSF_NOTIMEOUTIFNOHUNG

等待消息的响应,只要接收者没挂起,就不会超时。

BSF_POSTMESSAGE

发送一个消息,不要和BSF_QUERY一同使用。

BSF_QUERY

一次发送消息给一位接收者,只有当现在的接收者返回TRUE时,才发送消息给下一位接收者。

BSF_SENDNOTIFYMESSAGE

Windows2000:用SendNotifyMessage函数发送消息,不和BSF_QUERY一同使用。

 

lpdwRecipients

       指向包含和接收关于消息接收者信息的变量。这个参数可以是下面一个或者多个值。

解释

BSM_ALLCOMPONENTS

广播给所以的系统组件

BSM_ALLDESKTOPS

Windows NT/2000:…

BSM_APPLICATIONS

广播给应用

BSM_INSTALLABLEDRIVERS

Windows 95/98:。。。

BSM_NETDRIVER

Windows 95/98:。。。

BSM_VXDS

Windows 95/98:。。。

当函数返回,这个变量接收一个以上复合值指示实际上接收消息接收者。

如果此参数为NULL,函数广播给所以的组件。

uiMessage

       指定需要发送的消息。

wParam

       消息指定的额外信息。

lParam           

       消息指定的额外信息。

返回值

       如果函数返回成功,返回值是个负值。

       如果函数不能广播消息,返回值为-1。

       如果dwFlags参数是BSF_QUERY,至少一个接收者针对相应的消息返回BROADCAST_QUERY_DENY,返回值为0。可以通过调研GetLastError函数获得详细的信息。

说明

       如果没有指定BSF_QUERY,函数发送指定的消息到所有请求的接收者,这些接收者返回的值将不会被处理。

 

l      BroadcastSystemMessageEx

 

BroadcastSystemMessage函数的扩展,这个函数可以从接收者返回更多的信息。

long WINAPI BroadcastSystemMessageEx(

 __in         DWORD dwFlags,

 __inout_opt  LPDWORD lpdwRecipients,

 __in         UINT uiMessage,

 __in         WPARAM wParam,

 __in         LPARAM lParam,

 __out_opt    PBSMINFO pBSMInfo

);

pBSMInfo [out, optional]

       指向BSMINFO结构体,如果请求被拒绝并且dwFlag设置为BSF_QUERY这个结构体会包括额外的信息。

 

l      DispatchMessage

此函数发送消息给窗体程序,通常用GetMessage函数接收此函数发送的消息。

LRESULT DispatchMessage(

  CONSTMSG *lpmsg   // message information

);

lpmsg 

       指向包含消息的MSG结构体的指针。

返回值

       返回值由窗体程序返回的值,尽管返回值的含义依赖于被调度的消息,但返回值通常被忽略。

说明

       MSG结构体必须包含合法的消息值,如果lpMsg参数指向WM_TIMER消息并且WM_TIMER消息参数lParam不为NULL,则调用IParam指向的函数,而不是调用窗口程序。

 

l      GetInputState

此函数决定在线程消息队列中,是否有鼠标点击或者键盘消息。

BOOL GetInputState(VOID);

 

返回值

如果队列中包含一个或者多个新的鼠标点击或者键盘消息,返回非0.

如果没有新的鼠标点击或者键盘消息,返回0。

 

c++的消息机制(一)

今天研究c++消息机制是遇到两个参数不是很明白 查了下资料 记录下(以下都是我个人理解,错误请帮忙指正): LRESULT SendMessage(HWND hWnd,UINT Msg,WPAR...

走进windows编程的世界-----消息处理函数(1)

Win32消息机制    过程驱动:程序是按照我们预先定义好的顺序执行,每执行一步,下一步都已经按照预定的顺序 继续执行,直至程序结束。    事件驱动:程序的执行顺序是无序的。某个时间点所执行的代码...

窗体消息传递(1) FindWindowEx函数介绍

函数功能:该函数获得一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。      函数原型:HWND Fi...

深入浅出MFC学习笔记1_GetMessage、PeekMessage、TranslateMessage、DispachMessage等等用法 消息循环中的TranslateMessage函数和Dis

GetMessage: BOOL GetMessage(           LPMSG lpMsg,     HWND hWnd,     UINT wMsgFilterMi...

C++ 消息(成员函数调用)的动态绑定

1. 消息的多态性     C++把类看作类型,把以public方式(严格讲:只有public方式)继承的派生类看做基类的子类型,这样就使得在C++面向对象程序中存在下面的三种多态:     1)对象...

C++中建立对象间消息连接的一种系统方法——回调函数

C++中建立对象间消息连接的一种系统方法——回调函数 作者:项飞 用过C++进行过面向对象程序设计的用户都知道,程序中的对象很少单独存在。不考虑对象间的相互作用几乎是不可能的。所以,标识对象间的关...

C++中建立对象间消息连接的一种系统方法——回调函数

用过C++进行过面向对象程序设计的用户都知道,程序中的对象很少单独存在。不考虑对象间的相互作用几乎是不可能的。所以,标识对象间的关系或建立对象间的消息连接是面向对象程序设计的一项重要任务。本文着重从C...

C++中建立对象间消息连接的一种系统方法——回调函数

C++中建立对象间消息连接的一种系统方法——回调函数 作者:项飞 用过C++进行过面向对象程序设计的用户都知道,程序中的对象很少单独存在。不考虑对象间的相互作用几乎是不可能的。所以,标识对象间的关...

PHP IPC函数,shm,shmop,message——共享内存函数,消息队列,与c/c++通讯

--enable-sysvsem.  信号量,个人感觉最好是无锁无信号设计速度更快 --enable-sysvshm.  shm*函数,将php变量放入共享内存,单一id可以插入多个php变量,自动序...

c++中消息函数(3)----PeekMessage和WaitMessage函数

l      PeekMessage 此函数检查一个线程消息队列中消息,如果消息存在,放置消息到指定的MSG结构体中。 BOOL PeekMessage(   LPMSGlpMsg,   ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++中消息函数(1)
举报原因:
原因补充:

(最多只允许输入30个字)