我正在尝试理解Delphi 2007中的ControlStyle
属性,但我无法掌握csClickEvents
和csCaptureMouse
属性。
根据规范,csCaptureMouse
使控件在单击时捕获鼠标事件,而csClickEvents
使控件能够接收并回答鼠标点击。它还明确提到TButton
不继承此属性(我已检查过源代码:确实如此)。
csCaptureMouse
和csClickEvents
到底做了什么,有什么区别?谢谢你的回答。
答案 0 :(得分:4)
csCaptureMouse意味着组件将接收MouseUp事件(在单击组件之后),即使鼠标已从组件的边界释放;
csClickEvents表示该组件生成OnClick事件。
这些选项不同。
关于为什么TButton不包含csClickEvents - 答案是:
因为通过哪种机制 您收到TButton的点击次数 不同 - 它会生成点击事件 从BN_CLICKED窗口消息, 这是Windows的处理方式 按钮,而不是通过 WML_BUTTONDOWN,这是默认值 对于TControl。现在可能就是这样 你已经包含了csClickEvents 你会得到每个鼠标两次点击 点击,或者也许会有一个 丢弃,但你仍然可以得到 奇怪的行为。我没有钻研过 深深地知道了陷阱 打开csClickEvents但是我 不会认为它会很明显 航行。中找到了这个答案