我有一个我创建的组件,它在TWinControl中嵌入了一个硬件加速的渲染器,因此您可以将它放在一个表单上.它在大多数情况下工作得很好,但如果我尝试调整控件的大小,一切都会变为空白,直到消息循环运行并调用渲染器的WndProc,渲染器托管在外部DLL中.这意味着我需要在代码中调整控件的大小后显式调用Application.ProcessMessages,我知道这被认为是不好的做法.
有没有办法在控件本身放置一些逻辑,以便在我更改控件的大小时调用DLL中的WndProc,所以我不需要调用ProcessMessages来获取正确的东西?
我已经构建了一个自定义控件,我正在尝试将输入发送到.它将接受鼠标输入并正确报告MouseDown,MouseMove和MouseUp,但无论出于何种原因,它都不接受键盘输入.当我点击它时,它没有得到焦点,我按下的任何键都被任何具有焦点的控件解释.
这可能非常简单.我想看的第一个地方是在ControlStyle属性中,但我在帮助文件中看到的关于键盘输入的唯一内容是csNoStdEvents禁用它,而我的控件没有.那么我需要做些什么才能让我的控件能够获得输入焦点?
我正在设计一个自定义控件,每次我在表单设计器中突出显示它,然后从控件选项板中选择另一个控件,新的控件最终在我的控件内,就像它是TPanel或TGroupBox一样.这不是我想要的,所以我怎么能阻止它发生?