wince 驱动发送广播消息

【原创】wince 驱动发送广播消息

在wince的驱动下,添加自定义的消息,在某一时刻发送到HWND_BROADCAST,在应用层中,相应的程序接收这个消息,并进行相应的处理。

驱动中的定义发送消息:(例如:)

//******************************************************************** // Function : SendSIGNALMessage // Description : 发送信号消息 // Input : signal : 信号 // Output : NONE // return : TRUE/FALSE //******************************************************************** BOOL SendSIGNALMessage(int signal) { BOOL ret = FALSE; // 信号消息 static UINT WM_TGD_SIGNAL = RegisterWindowMessage(_T("TGD_SIGNAL_MESSAGE")); if(WM_TGD_SIGNAL){ ret = PostMessage(HWND_BROADCAST, WM_TGD_SIGNAL, (WPARAM)signal, 0); if(!ret) RETAILMSG(1, ( TEXT("### Send SIGNAL Message Fail! ###\r\n") )); else RETAILMSG(1, ( TEXT("### Send SIGNAL Message Success! signal:%d ###\r\n"), signal )); } else{ RETAILMSG(1, ( TEXT("### RegisterWindowMessage WM_TGD_SIGNAL Fail! ###\r\n") )); } return ret; }

应用层配置接收自定义消息:

1、添加消息定义:(和驱动层之间的定义一样)(在相应的cpp文件添加)
// 信号消息
static UINT WM_TGD_SIGNAL = RegisterWindowMessage(_T("TGD_SIGNAL_MESSAGE"));

2、添加接收消息处理函数:

(在相应的头文件添加声明)

afx_msg LRESULT OnSelfMessageHandle(WPARAM wParam, LPARAM lParam);

(在相应的cpp文件添加处理)
//******************************************************************** // Function : OnSelfMessageHandle // Description : 自定义消息接收函数 // Input : wParam : // Input : lParam : // Output : // return : LRESULT //******************************************************************** LRESULT CD3GOtherDlg::OnSelfMessageHandle(WPARAM wParam, LPARAM lParam) { CString tmp; tmp.Format(_T("wParam:%d, lParam:%d"), wParam, lParam); MessageBox(tmp, L"自定义消息接收函数"); return 1; }

3、添加自定义消息与接收函数的映射:(在cpp文件中添加,下面蓝色加粗部分就是要添加的)
BEGIN_MESSAGE_MAP(CD3GOtherDlg, CDialog)
#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
ON_WM_SIZE()
#endif
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_BTN_EXIT, &CD3GOtherDlg::OnBnClickedBtnExit)
ON_BN_CLICKED(IDC_BTN_GET_NET_MSG, &CD3GOtherDlg::OnBnClickedBtnGetNetMsg)
ON_BN_CLICKED(IDC_BTN_CHECK_WORK, &CD3GOtherDlg::OnBnClickedBtnCheckWork)
ON_REGISTERED_MESSAGE(WM_TGD_SIGNAL, OnSelfMessageHandle)
END_MESSAGE_MAP()

到这里就可以在应用层中接收到底层发送的消息了,这种情况适用于:有一个广播消息,要告知需要它的应用程序。需要接收这个消息的应用程序添加接收处理就可以了。

上述方法已经经过测试,在底层驱动发送了一个消息之后,上层的几个应用程序都能够接收到对应的消息,并且传递的参数也正确。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值