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()

 

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

 

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

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值