|
|
Tetszőleges ablak állapotának lekérdezése és beállítása
|
|
Példaprogram letöltése
8930 bájt
|
Lehetőségünk van arra, hogy nem csak saját ablakaink, hanem bármilyen más program ablakának állapotát és az azokhoz tartozó információkat lekérdezhessük, vagy beállíthassuk. Megtudhatjuk az ablak jelenlegi állapotát, minimalizált vagy maximalizált állapotának koordinátáit, stb. Ezen információk eléréséhez és beállításához API függvények állnak rendelkezésünkre.
Egy tetszőleges ablak állapotáról a GetWindowPlacement függvény segítségével kérdezhetünk le információkat.
[DllImport("user32.dll")]
public static extern bool GetWindowPlacement(IntPtr hWnd, ref WINDOWPLACEMENT lpwndpl);

GetWindowPlacement
public static extern bool GetWindowPlacement(
IntPtr hWnd,
ref WINDOWPLACEMENT lpwndpl
);
Egy megadott ablak állapotának és koordinátáinak lekérdezésre szolgál.
Paraméterek
IntPtr hWnd
Az ablak azonosítója.
ref WINDOWPLACEMENT lpwndpl
Mutató egy WINDOWPLACEMENT struktúrára, amelybe a lekérdezés eredménye kerül. Mielőtt meghívnánk a függvényt, a struktúra length tagjának értékét be kell állítanunk a struktúra méretére.
Visszatérési érték
Ha a függvény futása sikeres volt, akkor a visszatérési érték igaz, ellenkező esetben hamis.
Egy ablak állapotát természetesen nem csak lekérdezhetjük, hanem módosíthatjuk is. Erre szolgál a SetWindowPlacement függvény.
[DllImport("user32.dll")]
public static extern bool SetWindowPlacement(IntPtr hWnd, ref WINDOWPLACEMENT lpwndpl);

SetWindowPlacement
public static extern bool SetWindowPlacement(
IntPtr hWnd,
ref WINDOWPLACEMENT lpwndpl
);
Egy megadott ablak állapotának és koordinátáinak beállítására szolgál.
Paraméterek
IntPtr hWnd
Az ablak azonosítója.
ref WINDOWPLACEMENT lpwndpl
Mutató egy WINDOWPLACEMENT struktúrára, amelybe a lekérdezés eredménye kerül. Mielőtt meghívnánk a függvényt, a struktúra length tagjának értékét be kell állítanunk a struktúra méretére.
Visszatérési érték
Ha a függvény lefutása sikeres volt, akkor a visszatérési érték igaz, ellenkező esetben hamis.
A WINDOWPLACEMENT struktúra
- length: A struktúra mérete bájtokban. Mielőtt meghívnánk a fenti függvények bármelyikét, ennek a tagnak az értékét be kell állítanunk a struktúra méretére.
- flags: Flag-ek, amelyek a minimalizált ablak állapotát, valamint visszaállítását vezérlik. Értéke az alábbiak kombinációja lehet.
| Érték |
Jelentése |
| WPF_RESTORETOMAXIMIZED |
Csak akkor van jelentősége, ha a SW_SHOWMINIMIZED flag-et használjuk a showCmd tagban. Azt határozza meg, hogy az ablak maximalizált állapotban kerüljön visszaállításra, függetlenül attól, hogy az ablak korábban volt-e maximalizálva. |
| WPF_SETMINPOSITION |
Ezt a flag-et akkor kell használnunk, ha a minimalizált ablak koordinátáit a ptMinPosition tagban beállítottuk. |
- showCmd: Az ablak aktuális állapotát határozza meg. Értéke az alábbiak egyike lehet.
| Érték |
Jelentése |
| SW_HIDE |
Elrejti az ablakot, majd aktivál egy másikat. |
| SW_MAXIMIZE |
Maximalizálja az ablakot. |
| SW_MINIMIZE |
Minimalizálja az ablakot, majd aktiválja a Z index szerinti, soron következő ablakot. |
| SW_RESTORE |
Aktiválja és megjeleníti az ablakot. Ha az ablak minimalizálva vagy maximalizálva van, akkor az operációs rendszer visszaállítja azt az eredeti állapotába (restore). Visszaállítás esetén ezt a flag-et kell használnunk. |
| SW_SHOW |
Aktiválja az ablakot, majd megjeleníti. |
| SW_SHOWMAXIMIZED |
Aktiválja az ablakot, majd maximalizált állapotában megjeleníti azt. |
| SW_SHOWMINIMIZED |
Aktiválja az ablakot, majd minimalizált állapotában megjeleníti azt. |
| SW_SHOWMINNOACTIVE |
Ugyanaz, mint az SW_SHOWMINIMIZED, de az ablak nem kerül aktiválásra. |
| SW_SHOWNA |
Ugyanaz, mint az SW_SHOW, de az ablak nem kerül aktiválásra. |
| SW_SHOWNOACTIVATE |
Ugyanaz, mint az SW_SHOWNORMAL, de az ablak nem kerül aktiválásra. |
| SW_SHOWNORMAL |
Aktiválja és megjeleníti az ablakot. Ha az ablak minimalizálva vagy maximalizálva van, akkor az operációs rendszer visszaállítja azt az eredeti állapotába (restore). |
- ptMinPosition: Az ablak bal felső sarkának koordinátái, amikor az ablak minimalizált állapotban van.
- ptMaxPosition: Az ablak bal felső sarkának koordinátái, amikor az ablak maximalizált állapotban van.
- rcNormalPosition: Az ablak koordinátái, amikor az ablak visszaállított állapotban van.
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
C# Software Offline 2003 évkönyv 555. oldal
Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!
|