Bonjour,
J'ai besoin de vos lumières sur la mise en oeuvre de la classe CRgn et la méthode CombineRgn.
Exemple : je veux combiner 2 rectangles,
Test me renvoie toujours erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 CPoint topLeft(100,100); CPoint bottomRight(400,355); m_Rectangle1.SetRect(topLeft, bottomRight); //décale les sommets du 2° rectangle topLeft.Offset(200,200); bottomRight.Offset(100,100); m_Rectangle2.SetRect(topLeft, bottomRight); m_MaRegion1.CreateRectRgnIndirect(&m_Rectangle1); m_MaRegion2.CreateRectRgnIndirect(&m_Rectangle2); int Test = RegCombinee.CombineRgn(&m_MaRegion1,&m_MaRegion2, RGN_OR);
Mes 2 rectangles ont bien une intersection commune comme dans la doc MSDN.
Quel que soit le code RGN_OR, RGN_AND, RGN_DIFF, j'obtiens toujours erreur.
J'ai essayé également avec HRGN, au cas où, mais non idem.
Une solution de contournement consiste à définir les sommets de ma région et d'utiliser CreatePolygonRgn ou CreatePolyPolygonRgn, mais je trouve cette solution lourde, inesthétique, sans parler de la relecture et de la maintenance dans quelques mois...
merci d'avance
Partager