HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Alkalmazás ablakának villogtatása


Példaprogram letöltése

8616 bájt

Háttérben futó Windows-os alkalmazások esetén jól jöhet, ha valamilyen módon figyelmeztetni tudjuk a felhasználót a műveletek befejezésére. Ennek egyik módja, hogy aktívvá tesszük az alkalmazás ablakát. Ha ezt tolakodónak érezzük, akkor jelezhetünk diszkrétebben is, mégpedig az alkalmazás Tálcán megjelenő ikonjának felvillantásával. Cikkünkben megvizsgáljuk, hogyan oldhatjuk meg ez utóbbit.

A mellékelt példa ComboBox kontroljában ki kell választanunk a villogtatás típusát, mely a MŰVELET gombbal indítható. A villogtatás 100 felvillantást jelent, melyet a LEÁLLÍTÁS gombbal szakíthatunk meg.
A művelet elvégzésére a USER32.DLL-ben megtalálható FlashWindowEx metódust használjuk fel, melynek menedzselt deklarációját a Win32 osztályban helyeztük el.
[DllImport("user32.Dll", CharSet=CharSet.Auto)]
public static extern int FlashWindowEx(ref FLASHWINFO f);
A metódus egy FLASHWINFO típusú struktúrát vár paraméterként, melyben meg kell adnunk a megfelelő adatokat. A deklaráció szintén ebben az osztályban kapott helyet.
public struct FLASHWINFO
{
  public uint cbSize;
  public IntPtr hwnd;
  public int dwFlags;
  public int uCount;
  ...
}
A mezők jelentése a következő:
  • A struktúra mérete
  • A villogtatandó ablak azonosítója
  • Villogtatás típusa
  • Villogtatás száma
A típusba egy konstanst kell megadni, mely meghatározza, hogy az adott ablaknak a fejléce, a Tálcán található ikonja, vagy mindkettő villogtatandó.
A műveletet a következőképpen végezzük el: első lépésben a struktúrát példányosítjuk.
Win32.FLASHWINFO f = new Win32.FLASHWINFO();
Megadjuk a méretadatot.
f.cbSize = (uint)Marshal.SizeOf(f);
Megadjuk az ablakazonosítót.
f.hwnd = this.Handle;
A művelet számát.
f.uCount = 100;
Majd a típustól függő konstanst.
switch(comboBox1.SelectedIndex)
{
  case 0: type = Win32.FLASHW_CAPTION;
    break;
  ...
A struktúrát átadva paraméterként meghívjuk a metódust.
Win32.FlashWindowEx(ref f);
A leállításkor a FLASHW_STOP konstanst kell megadnunk a struktúra meghatározott mezőjében, majd újra meg kell hívni a metódust.
f.dwFlags = Win32.FLASHW_STOP;
Win32.FlashWindowEx(ref f);
A többi adat változatlan. A használható konstansok listája a következő:
  • FLASHW_STOP
  • FLASHW_CAPTION
  • FLASHW_TRAY
  • FLASHW_ALL = FLASHW_CAPTION | FLASHW_TRAY

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 745. 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!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |