用于通过SendMessage API从Delphi TcxGrid检索信息的常量消息

问题描述 投票:0回答:1

我正在尝试使用AutoIt在Delphi开发的应用程序中操纵TcxGrid。AutoIt有很多自定义库,但是它们中的任何一个都与TcxGrid有关,因为此对象不是标准的Windows对象。我可以使用任何其他IDE或编程语言(C#,C ++,甚至是Delphi),但我会遇到同样的问题:如何从此控件中检索信息?基本上是为了与其他进程进行通讯:

LRESULT SendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)

但是真正的问题是如何知道Delphi对象中使用的常量消息。有人知道在哪里可以找到用于与TcxGrid对象通信的常量吗?我已经考虑过创建一个循环并增加消息值并逐个测试它,但这将花费大量时间。[其他相关搜索:Windows文档的SendMessage:https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-sendmessageWindows组合框的文档(仅作为示例):https://docs.microsoft.com/en-us/windows/win32/controls/bumper-combobox-control-reference-messages类似的疑问1:Accessing TcxGrid controls from a Delphi application from c# using WinAPI类似的疑问2:Retrieve a ComboBox counts and items by using SendMessage API

windows delphi winapi autoit
1个回答
0
投票
  1. 仅访问源代码将显示使用的消息的完整列表。任何旧版本也将是一个很好的解决方案。

  2. 所有Delphi TWinControl后代组件都支持诸如WM_*之类的标准Windows消息(例如WM_CHARWM_LBUTTONUP等)。 Delphi还使用特殊的CM_*消息。消息列表在Delphi源代码中可用。主要模块是Winapi.MessagesVcl.Controls

第三方开发人员很少添加他们的消息。使用Delphi语言进行数据交换通常不需要这样做。

  1. 困难的方法是在工作时跟踪窗口发送的所有消息。通过参数SetWindowsHookExWH_GETMESSAGE使用WH_CALLWNDPROC功能。请注意LPARAMWPARAM的值。它们还包含重要信息。

添加:网格通常使用内置组件(EDITCOMBOBOX等)输入信息。当它们可见时,您也可以向他们发送消息。

© www.soinside.com 2019 - 2024. All rights reserved.