我在 Delphi 中编写了一个高级文本编辑器组件(固定宽度、语法突出显示等),使用 Windows API 结合 TCanvas 元素,它工作得很好,除了一件事:如果我将焦点设置到同样显示插入符号的应用程序,例如 TEdit,从我的编辑器组件中窃取焦点,未显示新编辑器的插入符号(例如 TEdit);相反,插入符号在我的编辑器组件中移动!例如,如果我在新编辑器 (TEdit) 中编写一个字符,它将按预期显示,并且插入符号将在我的组件中向右移动。什么会导致这种情况?我怀疑 Win API 对键盘焦点的处理和 VCL 处理之间存在一些冲突。在我的编辑器组件中,我使用 CreateCaret 来响应 WM_SETFOCUS,并使用 DestroyCaret 来响应 WM_KILLFOCUS。
问问题
1165 次