2016-10-03 47 views
0

有沒有辦法跳轉所有對話框在標準代碼?如何通過代碼跳轉所有對話框?

例如,如果在TaxVatTable.validateWrite呼叫類TaxVATNumValidateES\validateVATNum,這裏存在一個BOX,我不想顯示,有沒有解決方案?

存在一種禁用對話框功能的方法嗎?

回答

2

是的,你可以,只需修改\Classes\Box中的相關方法。

問題在於那些Box消息是決定點由用戶作出。那麼你怎麼知道他們會一直選擇什麼?您可以返回_defaultButton,並且在大多數情況下可能是O-K。

他們調用不同類型的表單,但是您指的是\System Documentation\Classes\DialogBox這是內核代碼,因此您可以覆蓋它的最低點位於Box類。

你可以看到他們是如何短路通過這樣做:

if (clientKind() == ClientType::COMObject) 
    return _defaultButton; 

編輯:

我想補充一點,我不建議這樣做。只需更改所調用位置的代碼即可。你會在功能上破壞框架的一部分。其他開發人員可能需要在某個時候調用此功能。

它用於形式和所有地方。如果你只是讓它總是返回Yes,你可能會導致各種問題。

+0

謝謝@Alex Kwitny,這很無聊,但我必須找到所有點,有一個對話框 – ulisses

+1

使用交叉引用,它將需要幾秒鐘才能找到。您可以通過以下https://msdn.microsoft.com/en-us/library/aa877386.aspx來構建它。然後,您可以右鍵單擊'SystemDocumentation'或'Box'類下的'DialogBox',並說'AddIns> Where Used',它將識別他們使用的每個位置。 –