Je souhaite écrire une fonction qui doit définir la zone de découpage sur un contrôleur de domaine mais restaurer toute région de découpage existante sur le contrôleur de domaine une fois celle-ci terminée.utilisation correcte de GetClipRgn?
J'ai donc trouvé GetClipRgn
qui ressemble exactement à ce que je veux mais qui semble confus. Je n'ai pas trouvé d'exemples d'utilisation et Petzold n'avait rien à offrir.
Ce que je suis venu avec était le suivant:
void DrawStuff(HDC hDC)
{
HRGN restoreRegion = CreateRectRgn(0, 0, 0, 0);
if (GetClipRgn(hDC, restoreRegion) != 1)
{
DeleteObject(restoreRegion);
restoreRegion = NULL;
}
//
// Set new region, do drawing
//
SelectClipRgn(hDC, restoreRegion);
if (restoreRegion != NULL)
{
DeleteObject(restoreRegion);
}
}
Il semble juste bizarre que je dois créer une région afin d'obtenir la région actuelle.
Est-ce l'usage correct?
Y a-t-il un meilleur moyen d'obtenir le même effet?
Avez-vous vraiment besoin d'une "petite" région (généralement appelée "région d'intérêt - ROI") qui est une sous-partie de la zone client complète? GetClientRect() vous donnera la zone de dessin complet. – JustBoo
Oui, c'est une fonction bizarre ... Votre code a l'air correct –
@Hans - merci je me sens mieux maintenant ... Probablement la fonction win32 la plus étrange que j'aie jamais utilisée ... – markh44