是否可以在 RAD Studio 10 c++ 中设置 Window (x, y) 位置?

Is it possible to set the Window (x, y) Position in RAD Studio 10 c++?

我正在开发一个应用程序,我的表单 object 似乎没有任何内容可供我指定其确切坐标。

我在顶部有一个标签作为标题栏,在 c# 中我可以使用我的鼠标坐标和 window 坐标的组合来使 window 在用户时随鼠标移动点击和拖动。但是,在 C++ 中(与 RAD 工作室一起)似乎没有任何在线内容可供我用作参考来完成此操作。

我已经尝试 windows api 使用:

SetWindowPos(this->GetOwnerWindow(), HWND_TOPMOST, 5,5,5,5, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);

有 window 位置之类的东西,但它只接受整数或变量,例如 "poScreenCenter"。

任何有关如何实现这一点的见解都将非常有用。

TForm(以及一般的所有 UI 控件)具有 LeftTop(以及 WidthHeight)属性。

您可以使用 Label 的 OnMouse(Down|Up) 事件来 set/unset 布尔值,然后如果设置了 bool,则让 Label 的 OnMouseMove 事件重新定位 Form。

一个更简单、更有效的解决方案是让 OnMouseDown 事件向表单的 HWND 发送一条未记录的 WM_COMMAND(SC_DRAGMOVE) 消息,让 OS 为您处理其余的事情。请参阅 Moving a caption-less window by using a "drag area"(为 Delphi 编写,但它也适用于 C++Builder,因为它们使用相同的 VCL 框架)。