5
A
回答
2
是你可以簡單地定義自己的郵件作爲比WM_USER常數較大:
#define WM_MY_MESSAGE (WM_USER + 1000)
然後你就可以使用正常的ON_COMMAND/ON_NOTIFY宏。
像這樣的用戶定義消息的問題是,其他程序可以使用與您相同的常量。而你可能會收到別人發來的錯誤消息。
爲了解決這個問題,您可以使用RegisterWindowMessage的註冊信息。
這裏有一個很好的user defined messages/registered messages破壞。
1
您可以使用「RegisterWindowMessage」創建新的唯一消息。
來自MSDN:「RegisterWindowMessage函數定義了一個新的窗口消息,保證在整個系統中唯一。消息值可以在發送或發送消息時使用。
6
這取決於你正在使用的消息。 This link顯示了Win32消息的「地址空間」細分。
WM_USER
是不是在一般情況下是正確的解決方案。 WM_USER
消息「可以由應用程序定義並用於在私有窗口類中發送消息這些值不能用於定義在整個應用程序中有意義的消息,因爲某些預定義的窗口類已經定義了此範圍內的值。
您最好分配一個處於WM_APP
範圍內的消息ID。
RegisterWindowMessage
如果您希望讓系統在運行時爲您分配消息ID,它非常有用。 「所有註冊相同字符串的應用程序都可以使用關聯的消息編號來交換消息」,因此,當您需要使用自定義消息進行簡單的進程間通信時,您可以使用RegisterWindowMessage
。
相關問題
- 1. MFC消息泵vs Win32消息循環
- 2. 如何讓異常在C#中定義自己的消息?
- 3. 自定義消息和默認消息
- 4. 來自PowerPoint點擊器的WM消息
- 5. 如何添加支持參數的自定義消息泵?
- 6. 如何使用自己的消息泵來運行表單?
- 7. 是否有Control.Invoke泵消息?
- 8. InvalidConstraintException的自定義消息
- 9. Socket.io,給自己的消息
- 10. 如何在SDL Tridion消息欄中顯示自定義消息?
- 11. 在Wicket中定義自己的反饋消息
- 12. .NET中的消息泵Windows服務
- 13. 無限循環中的Windows消息泵
- 14. 自定義彈出消息
- 15. Validates_overlap自定義消息?
- 16. CodeIgniter自定義404消息
- 17. 自定義驗證消息
- 18. CakePHP - 自定義消息
- 19. 自定義消息(JSF)
- 20. 自定義驗證消息
- 21. 自定義錯誤消息
- 22. JSF 2.0自定義消息
- 23. 自定義S3 403消息
- 24. Tablix行自定義消息
- 25. WPF:自定義消息框
- 26. 自定義消息框WPF
- 27. Win32自定義消息框
- 28. 自定義異常消息C#
- 29. C#System.Net.WebException檢索自定義404消息
- 30. 在Drupal中添加自定義消息
當然要注意,其他程序不應該使用'WM_USER-0x7FFF'範圍向您發送消息。哎呀,他們甚至不應該在程序中發送。爲此你有'WM_APP-0xBFFF範圍'。 WM_USER是窗口類的內部,而不是程序。 – MSalters 2010-05-21 08:55:42