2017-10-22 100 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

我已經把我自己的版本,已完美的作品。謝謝你的總部答覆 –

相關問題