在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