我们正在使用修改后的TToolWindow97 = class(TCustomControl)组件。

我只能在TForm.Components上找到它。而且在TForm.Controls上也没有。因此,当TToolWindow97被聚焦时,TForm.ActiveControl为nil且为TToolWindow97.Focused = False。我需要知道它是什么时候聚焦的。
我还试图在TToolWindow97上找到任何有焦点的控件。但它们都返回Focused = False。
当Focused属性返回always False时,如何确定TToolWindow97 (继承自TCustomControl)是否为焦点
附注:TToolWindow97窗口在图像上有阴影。只有聚焦的TToolWindow97窗口才有-所以焦点是存在的。我可能会把所有的控制都集中在它上面。但它们都返回Focused = False。我也不知道原因。
非常感谢你的帮助!
发布于 2013-04-03 23:03:33
1)。当TBToolWindow被聚焦或未被聚焦时,扫描以下句柄:
aHandle := (Sender as TForm).Handle;
aHandle := aVisible.Handle;
aHandle := GetForegroundWindow;
aHandle := GetActiveWindow;
aHandle := Screen.ActiveForm.Handle;
aHandle := Application.ActiveFormHandle;所以,区别只在Screen.ActiveForm.Handle上。
2)。安装Microsoft Spy。
3)。将Screen.ActiveForm.Handle转换为十六进制,并在间谍上找到它们。
4)。看看类。因此,当TTBToolWindow被聚焦时,aHandle的类是TBFloatingWindowParent。
5)。编写代码以通过TBFloatingWindowParent控件查找正确的活动浮动窗口(TTBToolWindow)。
发布于 2013-04-02 04:41:20
工具栏按钮没有焦点。在图像中,可以清楚地看到网格控件具有焦点-它有一个虚线焦点矩形,单元格使用焦点颜色突出显示。
用鼠标指向带有阴影图像的"15“按钮。它处于“悬停”或“热”状态,而不是“焦点”状态。在代码中,状态的名称是bsMouseIn,它存储在FState字段中;该字段具有受保护的可见性,不会通过任何公共属性或方法公开。您可能会对OnMouseEnter和OnMouseExit事件感兴趣。
工具栏按钮很少获得焦点。它们应该只用鼠标来操作。要使用键盘操作它们,您需要按下与其相关的快捷键组合。特定的按钮控件TToolbarButton97绝对不会获得焦点,因为它是从TGraphicControl继承下来的。
https://stackoverflow.com/questions/15750352
复制相似问题