Cum se face ca forma sa se lipi de marginile ecranului

Există o funcție Windows API care vă permite să conectați ferestrele la marginea ecranului. Mesajele Windows sunt utilizate aici. Delphi face ușoară manipularea mesajelor prin utilizarea de evenimente, care sunt generate în mod tipic ca răspuns la un mesaj pentru Windows după ce îl trimite la cerere.







Deși multe mesaje Windows sunt tratate de Delphi, unele trebuie modificate. De exemplu, vom afla dacă formularul modifică dimensiunea (utilizând evenimentul OnResize și procesarea mesajului WM_SIZE). Dar cum știm că forma a fost mutată? Delphi poate primi mesajul, dar inițial nu are nimic de-a face cu el.

Mesajul WM_MOVING este trimis în fereastră atunci când utilizatorul îl mișcă. Prin procesarea acestui mesaj, aplicația poate monitoriza mărimea și poziția ferestrei care se deplasează și, dacă este necesar, modifică dimensiunea sau poziția acesteia.

WM_WINDOWPOSCHANGING mesaj trimis la fereastra la schimbarea dimensiunii, poziția, sau Z-ordine într-o funcție SetWindowPos de apel sau o funcție de control fereastră.







Un mesaj simplu nu este suficient pentru noi, trebuie să cunoaștem alți parametri. De exemplu, mesajul WM_MOVE ne spune că poziția formularului sa schimbat, dar are și parametrul LPARAM. care ne poate da pozițiile X și Y.

Mesajul WM_WINDOWPOSCHANGING are un singur parametru care indică structura WINDOWPOS. care conține informații despre noua dimensiune și poziția ferestrei. Structura WINDOWPOS este definită după cum urmează:

În cazul nostru, să facem ca forma să rămână la marginea ecranului la o anumită distanță, de exemplu, 20 de pixeli de la margine.

Mesaj WM_WINDOWPOSCHANGING

Pentru a anula lipirea pe orice margine a ecranului este simplă, trebuie doar să ștergeți un cod care este responsabil pentru site-ul dvs.

SystemParametesInfo numit cu SPI_GETWORKAREA ca primul parametru și devine dimensiunea zonei de lucru a ecranului (desktop). Vom folosi pentru a determina zona utilizabilă, cu excepția barei de sarcini, a barelor de instrumente etc.

Codul programului:

Acum începeți proiectul și mutați fereastra spre marginea ecranului pentru a vedea efectul de lipire.







Articole similare

Trimiteți-le prietenilor: