2016-10-03 36 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',它将识别他们使用的每个位置。 –