2010-09-09 35 views

回答

0

也許一些WndProcWM_CHILDACTIVATE的愛。 (當然,我假設所說的對話框會觸發這個)。如果需要替換現有的(但是相同的進程)或應用程序級別的消息泵,則可能需要直接跳到Win32 WndProc API - 請參閱SetWindowLong

YMMV。玩的開心。

0

這味道很不好。爲什麼你的應用程序的一部分試圖阻礙另一部分?如果打開對話框的組件不是面向用戶的組件,並且您試圖扼殺UI中的彈出窗口,那麼您需要進行一些返工以確保組件通知UI它需要一個文件名用戶界面可以選擇如何獲取它。如果你在內部使用一個組件,並且惱人​​地打開一個對話框,那麼它聽起來像你需要調整該組件,以便對話取決於它被用戶使用而不是服務。

與大多數winapi問題一樣,將會有一種方法來破解它,監視應用程序焦點,捕獲WM_CHILDACTIVATE或輪詢頂級窗口可能都可以工作,但它們都是黑客來解決事實,即您的應用程序不是它的設計沒有一致性。如果您可以修復設計,您將得到一個更可靠的解決方案,您的同事不會畏縮。

相關問題