2012-10-19 54 views
1

我有一個項目,我需要使用一個dll和.cpp以及.h文件的API。 在文檔中,我被告知要使用提供的API的PreTranslateMessage(MSG * pMsg)類函數,並將其放入用戶界面的消息循環中。如何從VCL項目的消息循環中調用其他函數?

是否有可能使用C++ Builder作爲這個項目的IDE,如果是的話,那麼怎麼樣,因爲它沒有一個消息循環,我可以放置這個函數。

+0

我不記得是怎麼回事,但是可以使用C++ Builder和'VCL'通過'PreTranslateMessage'在消息隊列中發佈消息否 – higuaro

回答

1

甲VCL應用有消息循環(這是一個正常的Windows應用程序,畢竟) 。它隱藏在TApplication::Run()方法的內部,該方法在項目的WinMain()函數中調用。如果您想在此循環中調用PreTranslateMessage(),則可以直接或通過TApplicationEvents組件將事件處理程序分配給TApplication::OnMessage事件。在VCL處理消息之前,消息從消息隊列中移除後立即觸發OnMessage事件。

1

檢查this out,它有大約與VCL集成Windows事件消息的過程中的一些文檔,althougth不知道這是否適用於你的項目,在項目中使用MFC框架的情況下,你是用Visual更好工作室。

在任一情況下,可以包括windows.h和有權訪問win32 API函數

C++ Builder中
+0

不,我的項目對MFC不夠緊張。事實上,我正在尋找一種方法來避免它。我只是在尋找一個不錯的IDE,在那裏我可以創建一個很好的GUI,並且能夠使用C編寫項目,並將PreTranslateMessage(MSG * pMsg)放在應用程序的消息循環中。 –

相關問題