[QR] Qu'est-ce qu'un contexte de périphérique?
Les contextes de périphérique sont des surfaces de dessin, ainsi, tous les contrôles graphiques (descendants de TGraphicControl) et toutes les surfaces de Dessin (TCanvas, TControlCanvas, TMetaCanvas, TPGNCanvas,...) en général possèdent une propriété Handle qui est de type HDC (et non pas HWND comme pour les fenètres).
Lors de la création d'une surface de dessin avec l'API Windows (HDC), on lui associe toujours un handle de fenètre particulière (HWND). Ainsi vous trouverez souvent le code suivant dans des codes sources Delphi.
Exemple d'obtention d'une surface de dessin et libération de cette surface :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| uses windows;
...
var DC:HDC;
begin
//Obtention d'une surface de dessin pour la fenêtre qui représente le bureau Windows
DC:=GetDC(HWND_DESKTOP); //GetDC(0) revient donc au même
//...utilisation de la surface de dessin (de nombreux exemples dans la FAQ)
//Libération du Handle.
ReleaseDC(HWND_DESKTOP,DC);
end; |
Un autre exemple de Handle de fenêtre particulier, souvent utilisé avec les API windows PostMessage et SendMessage est la constante HWND_BROADCAST qui permet d'envoyer le même message à toutes les fenêtres parentes du système.