c++中消息函数(1)

下面列出来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。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值