Comment creer des rectangles de selection [dev-c++]

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 078 fois - Téléchargée 39 fois

Contenu du snippet

Cette fonction vous permettra de Tracer des Rectangles de Sélection à la façon de Paint;
Remarque: Ce Code ne gère ni les agrandissement, ni les déplacements, ni les Curseurs de la souris, il trace
tout simplement un Rectangle en pointillés, qu'ainsi que ses petits rectangles de sélection.

- x est la Coordonnée X du Rectangle à traçer
- y est la Coordonnée Y du Rectangle à traçer
- longB est la Longueur du Rectangle
- largB est la Largeur du Rectangle

Source / Exemple :


void CreerRectangleSel( int x, int y, int longB, int largB )
{

PAINTSTRUCT Paint_Struct;
HPEN Stylo;
HBRUSH Pot;
HDC HdC;
HDC HdC2;
int xRect;
int yRect;

HdC = GetDC( HDialogue );
HdC2 = GetDC( HDialogue );

// Initialisation de Paint
BeginPaint( HDialogue, &Paint_Struct);

// Création du Stylo en pointillés
Stylo = CreatePen( PS_DOT, 1, RGB( 0, 0, 255 ));
// Création du pot de Peinture
Pot = CreateSolidBrush( RGB( 0, 0, 255 ));

// Sélection du Stylo pour...
SelectObject( HdC, Stylo );
// ...Tracer le Rectangle Principal en pointillés
Rectangle( HdC, x - 1, y - 1, x + longB + 2, y + largB + 2 );

// Destruction du Stylo
DeleteObject( Stylo );

// Sélection du Pot pour...
SelectObject( HdC2, Pot );
// Calculs des coordonnées
xRect = ((( x + longB + 2 ) / 2) + 2 );
yRect = (y - 4);
// ...Tracer le 1er Rectangle de Sélection
Rectangle( HdC2, xRect, yRect, xRect + 6, yRect + 6 );

// Calculs des coordonnées
yRect = (( y + largB + 2 )- 3);
// ...Tracer le 2ème Rectangle de Sélection
Rectangle( HdC2, xRect, yRect, xRect + 6, yRect + 6 );

// Calculs des coordonnées
xRect = (x - 4);
yRect = ((( y + largB + 2 ) / 2 ) + 4 );
// ...Tracer le 3ème Rectangle de Sélection
Rectangle( HdC2, xRect, yRect, xRect + 6, yRect + 6 );

// Calculs des coordonnées
xRect = (( x + longB + 2 )- 3);
// ...Tracer le 4ème Rectangle de Sélection
Rectangle( HdC2, xRect, yRect, xRect + 6, yRect + 6 );

// Destruction du Pot
DeleteObject( Pot );

// Ferme Paint
EndPaint( HDialogue, &Paint_Struct );

}

Conclusion :


Cette fonction ne génère aucuns bugs avec DEV-C++

A voir également

Ajouter un commentaire

Commentaires

cs_Kephren
Messages postés
54
Date d'inscription
dimanche 25 novembre 2001
Statut
Membre
Dernière intervention
19 mai 2003

Lol, ouais sans include et Winmain ca va pas marcher hein lol. Je pense que le but ici est de montrer la fonction pour le faire. Apres on l'incorpore sois même dans notre projet.
cmarsc
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003

Salut,

J'ai testé le code (devc++4.01) mais il n'est pas executable tel quel, il ne manquerait pas quelques lignes par hasard ???

Pourrait-on avoir le reste SVP ! Monsieur ou Madame

amicalement cmarsc

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.