begin process at 2012 05 29 00:31:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

MFC

 > 

combiner des styles d'objet


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

combiner des styles d'objet

vendredi 15 septembre 2006 à 20:53:29 | combiner des styles d'objet

saibe

hello tout le monde !
Trouver le titre du sujet m'a déjà posé des problèmes, alors j'espère pouvoir être clair. 
j'aimerai pouvoir gérer le style de mes objets par des #define et ainsi combiné différents styles
exemple qui ne fonctionne pas terrible :

// MODE
#define MA_HORIZ   0x0000
#define MA_VERTI   0x0002
#define MA_HORIZ_ADAPT  0x0003
#define MA_VERTI_ADAPT  0x0004
#define MA_LISTE_GEREE  0x0010
#define MA_LISTE_NON_GEREE 0x0020

class MonObjet : public CObject
{
   //création destruction et plein de fonctions....dont
   // l'objet se dessine tout seul dans la zone rect d'un pDC
   void dessine(CDC* pDC, CRect rect, DWORD le_fameux_style)
   {
      switch(le_fameux_style)
      {
         case MA_HORIZ: pDC->Ellipse(rect);
         case MA_LISTE_GEREE://il dessine autre chose
         //etc...
      }
      //####### OU
      if(le_fameux_style&MA_HORIZ)pDC->Ellipse(rect);
      if(le_fameux_style&MA_LISTE_GEREE)://....
      //etc...
      
   };
}
je voudrais donc que MonObjet se dessine en MA_HORIZ et ou sans MA_LISTE_GEREE
sans devoir gérer toutes les combinaisons dans la class
par un simple

MonObjet* obj;
obj = new MonObjet();
obj->dessine(pDC, rect, (MA_HORIZ | MA_LISTE_GEREE));
ou
obj->dessine(pDC, rect, (MA_VERTI | MA_LISTE_NON_GEREE));

mais voilà.... ça ne fonctionne pas
est-ce les define, la procédure switch ou if, l'appel
si quelqu'un pouvait m'aider ?
merci


saibe
vendredi 15 septembre 2006 à 22:35:25 | Re : combiner des styles d'objet

BruNews

Administrateur CodeS-SourceS
case MA_HORIZ:
  pDC->Ellipse(rect);
  break; // MANQUANT

ciao...
BruNews, MVP VC++
samedi 16 septembre 2006 à 06:02:04 | Re : combiner des styles d'objet

saibe

Hello BruNews.
en effet, je n'ai pas mis de 'break' pour ne pas casser le 'switch';
car il faut pouvoir vérifier tous les 'case'
si je 'break' un 'case' je sors du 'switch' non ?

saibe
samedi 16 septembre 2006 à 07:51:51 | Re : combiner des styles d'objet

yoyo269

Membre Club
Réponse acceptée !
Salut Saibe,

tu as pensé à utiliser un masque ?
if(le_fameux_style & MA_HORIZ) { blablabla;}
if(le_fameux_style & MA_VERTI) { blablabla;}
etc...

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

samedi 16 septembre 2006 à 10:24:58 | Re : combiner des styles d'objet

BruNews

Administrateur CodeS-SourceS
Il faut 'break' pour sortir du 'switch' sinon on continue l'exécution à la ligne en dessous.

ciao...
BruNews, MVP VC++
samedi 16 septembre 2006 à 15:30:49 | Re : combiner des styles d'objet

saibe

hello !

et merci pour vos réponses;
en effet j'ai opté pour le if avec masque
c'est ce qui convenait le mieux pour mon objet; même si j'aurais préféré un switch plus lisible....
et j'avais pas mis de 'break' pour justement passer à la ligne du dessous.... mais le switch ne masque po et ne gère donc po les combinaisons....

merci encore

saibe

samedi 16 septembre 2006 à 15:34:22 | Re : combiner des styles d'objet

yoyo269

Membre Club
Je suis tout à fait d'accord que les if ne sont pas des plus lisibles, mais il faut bien avouer que les masques sont quand même très très pratiques.
Bon courage pour la suite.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

lundi 18 septembre 2006 à 17:04:52 | Re : combiner des styles d'objet

saibe

les masques sont essentiels !!!

et justement j'avais comis une petite erreur  (c pour ca que ça ne fonctionnait pas)

masque &= !UN_STYLE_A_ENLEVE;
au lieu de
masque &= ~UN_STYLE_A_ENLEVE;

je suis bête

a+
saibe



Cette discussion est classée dans : liste, dessine, define, geree, horiz


Répondre à ce message

Sujets en rapport avec ce message

Liste Chainé en C++... [ par NitRic ] Bonjour, j'aimerais si possible un petit exemple ou bien un site qui parle des Liste Chainé en C++, pour la créée c'est ok mais c avec le fonctionneme Liste (vc++) [ par C++ ] Salut, je veux generer un nombre de 1 a 10 dans une listbox!merci d avance Comment afficher la liste des fichiers dans le composant List View [ par kanimana ] Bonjour Svp, indiquez moi la fonction qui permettera d'afficher les fichier contenu dans un répertoire dans le composant ListView, avec les détails liste de fonctions [ par niconico ] quelqu'un aurait-il l'adresse d'un site ou je pourrait trouver la liste des fonctions en C++; ou au moins celles relatives a la creation, modification Sélection des lifnes affichées par une liste modifiable [ par Gilles ] Bonjour,Prenons la table employés avec un champ nom et un champ prénom.Sur un formulaire, les nom et les prénoms s'affichent dans des listes modifiabl liste contenant un objet d'une de mes classes [ par Eric ] Salut,Je voudrais créer une liste contenant comme objet une de mes classes..par exemplelist ma_Liste_de_ma_Classe;mais je ne sais pas comment m'y pre Probleme d affichage [ par Scythale ] Lorsque j'execute ce programme voici ce que dit mon compilateur(borland C++): you have accidentely use the old dummy version of OwlMain.Je n'arrive pa au secours :etudiant qui a besoin d'aide [ par k6 ] bonjour a tous,je suis etudiant et j'ai a préparer un programme en c , et j'avoue avoir un mal de chien , en effet c'est ma matiére noire mais bon fau Liste chaînée [ par GoldenEye ] Qu'est ce que qu'une liste chaînée ?Merci Liste de control sous Vc++ 6.0 [ par Miboboio ] Je doit afficher un nombre indeterminer de control,les un en dessous des autres(le nombre depend des info que je dois afficher)Comment est il possible


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales