2010-08-12 60 views
1

這是我期望的相當直接,但幾個小時後瀏覽Visual Explorer在線幫助和通過各種論壇犁地,我仍然在虧損...如何在Windows中創建自定義事件?

基本上,我會喜歡能夠創建一個自定義的Windows事件,向接收者發送一個短整型向量。我實際上想在Fortran DLL中創建事件,但是如果我可以找到正確的API調用來從C++執行它,那麼我應該能夠找出其餘的部分。到目前爲止,我所能找到的所有示例(即使是C++)都使用.NET庫,但無法從Fortran訪問此示例,因此它必須是本機Windows API。

如果它有什麼不同,事件隨後會被一個使用Qt編寫的GUI應用程序作爲QEvent捕獲。

任何想法,將不勝感激。

回答

0

使用SendMessage函數來發送消息:http://msdn.microsoft.com/en-us/library/ms644950%28VS.85%29.aspx

然後只需使用一個尚未使用的任何其他消息的數量。您可以使用RegisterWindowMessage獲取唯一編號:http://msdn.microsoft.com/en-us/library/ms644947%28VS.85%29.aspx如果您只需要在自己的應用程序中進行通信,則不需要此操作,並且您可以選擇0x0400到0x7FFF之間的任何數字。

+0

這看起來很有希望,謝謝。這是網上搜索的經典之作 - 我應該輸入「消息」而不是「事件」,也許我會找到答案。與此同時,我正在尋找另一種方法,其中當GUI應用程序調用DLL時,它提供了一個回調函數,DLL在數據準備就緒時可以調用它;該回調可以生成一個QEvent或一個普通的Qt信號。如果我能得到這個工作,那麼它應該是一個更好的解決方案,因爲它比直接使用Windows API的任何東西都更具可移植性。 – 2010-08-12 11:10:56

+0

更新;回調方法效果很好,對於我想要做的事情來說,這是一個更好的解決方案,這就是爲GUI定期更新DLL中的長計算如何進行的更新。這樣做,所有基於事件的通信都保存在GUI代碼中,在我的情況下代表Qt信號和插槽。這既簡單又便攜。 – 2010-08-12 22:49:15

+0

只需使用最適合你的東西:)如果它可以很好的回調,就不需要使用消息。 – Ruud 2010-08-13 17:08:19

相關問題