在Windows上的C++中,我们使用用户定义的消息以表单UI的形式通过PostMessage API更新数据。我们可以在C#中使用PostMessage,但不知道如何在Forms中处理用户定义的消息! 有些人会告诉我使用委托和调用,但当线程调用委托时表单已关闭或尚未创建时,我们遇到问题。我们仍然喜欢PostMessage来通知UI更新数据。 请帮助。,如何将用户消息发布到Windows并进行处理?
-1
A
回答
1
Form
有一个方法可以覆盖,WndProc,它将接收您的自定义消息。它以Message
结构为参数,封装消息的hwnd,msg,wParam和lParam参数,并包含消息结果的字段。所以假设你有一条注册信息:
class MyForm : Form
{
const int MyMessage = WM_USER + 0x05; // for example
protected override void WndProc(ref Message m)
{
if (m.Msg == MyMessage)
{
// do whatever with your message
}
}
}
相关问题
- 1. 如何处理Windows消息
- 2. 处理Windows消息
- 3. Win32:如何将消息发布到由Windows中的其他用户运行的进程?
- 4. 如何将PLINQ进行并行处理?
- 5. 用户无法处理来自发布者的消息
- 6. 使用科尔多瓦将消息发送到webview进行处理
- 7. 发布消息无法到达用户
- 8. 发送或发布消息到Windows窗体消息循环
- 9. 如何处理消息之前将其发送到DLQ
- 10. 序列或并发hl7消息处理
- 11. 如何将消息发布到运行消息泵的STA线程?
- 12. 使用Gatling将消息发布到ActiveMQ
- 13. 如何在处理入站消息后异步发布新的JMS消息?
- 14. 与ActiveMQ并行处理多条消息
- 15. 如何在Windows中进行正确的顺序异步消息处理?
- 16. Facebook C#SDK - 将消息发布到用户墙
- 17. 如何通过ConsumerGroup控制处理消息的并发性
- 18. 使用spring批处理将XML消息发送到IBM MQ
- 19. 如何处理EXCEPT消息?
- 20. HandlerThread如何处理消息?
- 21. 发布消息引用用户
- 22. 如何使用curl将消息发布到Facebook商业页面?
- 23. 如何使用Java将消息发布到EMS主题
- 24. 替代JMS消息传递以在Torquebox中进行并发处理
- 25. 如何自动分配工作人员进行消息处理?
- 26. 如何在Perl中设置消息进行处理?
- 27. 如何判断是否正在进行骡流消息处理
- 28. Windows:将消息发送到父窗口?
- 29. SQS队列并行处理消息使用sqs消费者nodejs
- 30. 将消息发布到主题
我不明白这是什么意思。什么是“用户定义的消息在表单”?如果PostMessage适合你,为什么不简单使用它?为什么你会期望'Invoke'或者'BeginInvoke'能够正确的发送消息给那些还没有被创建或者已经被销毁的东西? 'PostMessage'也不适用于此。 – 2011-05-02 16:35:11
嗨科迪格雷,“用户定义的消息”是指C++中的WM_USER。在C++中,我们定义了像#define WM_UPDATE_TRANSACTION_STATUS WM_USER + 1这样的消息。你误解了,当线程在关闭或未准备好的表单中调用委托时,我们会多次遇到异常。我们认为PostMessage将解决这个问题。 – QuangND 2011-05-02 17:13:15