2017-10-22 85 views
0

我正在开发一个应用程序,它看起来好像我的Form对象没有任何东西可以指定它的确切坐标。是否可以在RAD Studio 10 C++中设置Window(x,y)位置?

我在顶部有一个标签,作为标题栏,在c#中,我可以使用鼠标坐标和窗口坐标的组合来使窗口在用户单击并拖动时随鼠标移动。然而,在c + +(与RAD studio一起),似乎没有任何在线的东西可以用来作为参考。

我试过Windows API的:

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

有类似的事情的窗口位置,但只接受整数或瓦尔像“poScreenCenter”。

任何有关如何这可能是有可能的了解会很好。

+0

好吧,我会研究一下,看看我是否可以以某种方式实施 –

+0

好吧,这似乎工作!如果你留下你的答案,我会标记为正确 –

回答

1

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

您可以使用标签的OnMouse(Down|Up)事件来设置/取消设置布尔值,然后让标签的OnMouseMove事件在布尔值被设置时重新定位表格。

更简单和更有效的解决方案是让OnMouseDown事件向窗体的HWND发送未记录的WM_COMMAND(SC_DRAGMOVE)消息,并让操作系统为您处理剩下的问题。请参阅Moving a caption-less window by using a "drag area"(为Delphi编写,但它也适用于C++ Builder,因为它们使用相同的VCL框架)。

+0

我已经把我自己的版本,已完美的作品。谢谢你的总部答复 –

相关问题