【发布时间】:2010-12-31 11:35:13
【问题描述】:
我有一个带有一堆 VCL 控件(如 TButton 和 TCheckBox)的 Delphi 表单,以及一个 Scintilla 文本编辑器的实例。我希望能够进入和退出文本编辑器,但看起来标签是由 VCL 库而不是 Windows 处理的。
我单步执行了代码,看起来选项卡是由 TWinControl 类的 SelectNext 和 FindNextControl 方法处理的。这些方法适用于 TWinControl 对象,但文本编辑器不像 TButton 和 TCheckbox 那样来自 TWinControl。
有没有一种简单的方法允许在非 VCL 和 VCL 控件之间切换?
【问题讨论】:
-
你为 Scintilla 库使用什么包装器?
-
我不使用包装器。 CreateWindowEx 创建它,SendMessage 与之通信。
-
为它创建自己的包装类可能是个好主意。它不必公开任何属性或方法。使用 TStaticText 或 TEdit 作为示例,说明如何使用正确的窗口类名称进行 TWinControl 后代调用 CreateWindowEx。你可以通过这种方式免费获得一堆东西,例如对齐、调整大小和制表符。
标签: windows delphi winapi tab-ordering