2014-02-27 63 views
-1

我有一個應用程序通過API掛接到另一個應用程序。我的應用程序啓動一個模式窗口,防止按鍵按照預期到達父按鈕。以編程方式點擊模式窗口父項中的工具欄按鈕

但是由於API的限制,我需要不時單擊父母工具欄按鈕之一(是的,這是一個雜湊)。

我不知道這是可能的,而仍然有我的應用程序的模態窗口活動?是否有可能將所需的命令直接發送到父命令隊列?

以編程方式點擊按鈕而沒有模式窗口應該不成問題,可以通過此鏈接轉到例如:http://forums.codeguru.com/showthread.php?307633-How-to-run-a-very-long-SQL-statement。但是我不想每次點擊按鈕都不必關閉窗口。

雖然第五個答案是我覺得有趣的,因爲我認爲這可以使發送命令成爲可能,而不必先關閉我的模態窗口。此外,它感覺一點都不那麼難看。

+0

確實我會嘗試發送一個WM_CLICK或類似的消息......我不記得模態是否會阻止它被處理。但是,您的工具欄按鈕是單獨的控件還是單個控件(因此,根據分辨率,字體大小等決定點擊的正確位置時可能存在問題)? – FredP

+0

每次可能都必須通過ID找到它們,因爲無法保證它們不會在工具欄中移動。 – DaedalusAlpha

回答

2

首先,當顯示模態對話框時,它將運行自己的消息泵。因此,任何假冒輸入消息的嘗試都將落入模態對話消息泵中。這對你不好。所以,你必須發送一條消息,而不是假的輸入。

但是,當顯示模態對話框時,其擁有的窗口被禁用。這意味着這些窗口不會響應您發送的任何消息。所以我想這意味着你可以:

  1. 啓用您擁有問題的工具欄的擁有頂級窗口。
  2. 將消息發送到工具欄按鈕。
  3. 再次禁用擁有窗口。

不是最好的方式去做事情,但你確實問過!

相關問題