sendmessage 自定义消息----------------


dialog中,
方法1,手动关联消息及处理函数,用ON_MESSAGE( , )
1.在CxxDlg的h文件中定义消息
#define WM_MY_DOSOME WM_USER+1 // do something
在CxxDlg的h文件中的AFX_MSG中加入一行消息处理函数的声明,afx_msg LRESULT DoSomeThing(WPARAM iParam1,LPARAM iParam2);如下
	//{{AFX_MSG(CTestmessageDlg)
	afx_msg LRESULT DoSomeThing(WPARAM iParam1,LPARAM iParam2);
	//}}AFX_MSG
2.在CxxDlg的cpp文件中的AFX_MSG_MAP中加入一行消息与消息处理函数的映射,ON_MESSAGE(WM_MY_DOSOME,DoSomeThing),如下
	//{{AFX_MSG_MAP(CTestmessageDlg)	
	ON_MESSAGE(WM_MY_DOSOME,DoSomeThing)//消息WM_MY_DOSOME与消息处理函数DoSomeThing关联
	//}}AFX_MSG_MAP
在CxxDlg的cpp文件中加入消息处理函数的定义,
LRESULT CTestmessageDlg::DoSomeThing(WPARAM iParam1,LPARAM iParam2)
{
	MessageBox("收到消息了,我要开始做一些事情了。","收到",MB_OK);
	//可以运用iParam1,iParam2 来做一些事情。
	return 0;
}
在CxxDlg的cpp文件中的需要的地方加入发送消息的代码,
::SendMessage(this->m_hWnd, WM_MY_DOSOME, (WPARAM) 0, (LPARAM) 0);	
//this->m_hWnd接收者句柄
//WM_MY_DOSOME发送的消息
//0,0 参数

方法2.利用已有的虚函数WindowProc窗口函数来接收消息并处理
1.在CxxDlg的h文件中定义消息
#define WM_MY_DOSOME WM_USER+1 // do something
2.ctrl+w为CxxDlg类增加虚函数WindowProc,填充函数体如下
LRESULT CTestmessage1Dlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	// TODO: Add your specialized code here and/or call the base class
	if (message==WM_MY_DOSOME)
	{
		AfxMessageBox("i got it");
	}
	return CDialog::WindowProc(message, wParam, lParam);
}
3.在CxxDlg的cpp文件中的需要的地方加入发送消息的代码,
::SendMessage(this->m_hWnd, WM_MY_DOSOME, (WPARAM) 0, (LPARAM) 0);	



当然也可以发送系统预定义的一些消息,某些消息一经有预定义的处理函数
比如向窗口发送关闭消息即可关闭窗口
void CtseT1Dlg::OnBnClickedButton1()
{
	//::SendMessage(this->m_hWnd, WM_CLOSE, (WPARAM) 0, (LPARAM) 0);     
	SendMessageW( WM_CLOSE, (WPARAM) 0, (LPARAM) 0);  
}




refer to http://www.cnblogs.com/wqj1212/archive/2008/03/03/1089298.html



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring-Boot WebSocket 可以实现向日葵远程控制。向日葵是一款远程控制软件,可以让我们在远程控制设备时更加方便和灵活。在使用Spring-Boot实现WebSocket时,我们可以结合向日葵的API来达到远程控制的目的。 首先,在Spring-Boot中,我们需要引入WebSocket的依赖。可以在pom.xml文件中添加相应的依赖,例如: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> ``` 然后,我们需要创建WebSocket的配置类。在配置类中,我们可以定义WebSocket的相关设置,例如消息处理器、握手拦截器等。可以参考以下代码: ``` @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(myHandler(), "/myHandler").withSockJS(); } @Bean public WebSocketHandler myHandler() { return new MyHandler(); } } ``` 在以上代码中,`registerWebSocketHandlers` 方法用来注册WebSocket处理器,并指定了处理路径。`MyHandler` 是自定义消息处理器,可以在其中处理接收到的消息、发送消息等。 接下来,我们可以在处理器中调用向日葵的API,实现远程控制的功能。例如: ``` public class MyHandler extends TextWebSocketHandler { @Override protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { // 处理接收到的消息 String receivedMessage = message.getPayload(); // 调用向日葵API,实现远程控制 // 发送消息 String responseMessage = "远程控制成功"; session.sendMessage(new TextMessage(responseMessage)); } } ``` 在以上代码中,`handleTextMessage` 方法用来处理接收到的消息。我们可以在其中调用向日葵的API实现远程控制的逻辑,并将结果作为消息发送回客户端。 最后,在Spring-Boot的主类中添加 `@EnableWebSocket` 注解,启用WebSocket功能。 综上所述,通过Spring-Boot WebSocket,我们可以便捷地实现向日葵远程控制的功能。使用WebSocket协议进行通信,同时结合向日葵的API,可以让我们更加灵活地远程控制设备。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值