控制窗體在螢幕上的顯示位置的相關方法

2021-06-01 12:36:08 字數 1111 閱讀 6379

看到公司使用的技術,將某個窗體這樣移到螢幕的某個位置的方法:

1.getwindowrect首先獲得窗體的rect

bool getwindowrect(      

hwnd hwnd,

lprect lprect

);

用法:

varr: trect;

begin

getwindowrect(reportform.parenthandle, r); //通過reportform的窗體控制代碼,獲得其整個介面的rect

end;

2.改變lprc矩形的源始座標。

bool offsetrect(

lprectlprc

,// rectangleintdx

,// horizontal offsetintdy

// vertical offset);

用法:

offsetrect(r, -r.left, -r.top);//往左,要使用負數 -dx;同理,往上移動,也要使用負數 -dy

3.使用vcl的屬性(delphi控制項):  指定矩形式的rect在其父控制項中的座標位置,即最關鍵的作用是此句。

property

boundsrect: trect;

用法:

reportform.boundsrect := r;//表示r的畫布要顯示在reportform窗體上。

將以上三句合起來使用,便重新整理了reportform窗體的位置。
4.setparent將改變控制項的父屬物件。

hwnd setparent(      

hwnd hwndchild,

hwnd hwndnewparent

);

用法:

windows.setparent(reportform.handle, ahandle);//將reportform窗體顯示在ahandle控制項上面。 

如何使用Windows API控制螢幕的相關設定

來自 1 當顯示卡支援雙螢幕則如何延伸桌面視窗至第二個螢幕和旋轉螢幕的顯示角度 1 1 主要使用下列三個windows api 一 enumdisplaydevices 取得目前顯示裝置基本資訊 二 enumdisplaysettings 取得特定顯示裝置的引數值 三 changedisplayse...

怎麼讓彈出的窗體Form顯示在螢幕的某乙個座標位置

怎麼讓彈出的窗體form顯示在螢幕的某乙個座標位置 delphi windows sdk api 怎麼讓彈出的窗體form顯示在螢幕的某乙個座標位置 例如 form.show 有postion屬性 可以讓窗體顯示在中間的 具體的自己設定看看 設定left top屬性 設定form.left,from...

獲取螢幕上正在顯示的activity

用過activitymanager的童鞋估計都知道,可以從activitymanager裡面可以獲取到當前執行的所有任務,所有程序和所有服務,這是任務管理器的核心。那麼,從裡面我們可以發掘點什麼出來嗎?仔細看getrunningtasks的文件,裡面說獲取的是系統中 running 的所有task,...