begin process at 2012 05 30 12:14:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

System

 > 

Style d'un controle.


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

Style d'un controle.

dimanche 27 août 2006 à 18:03:06 | Style d'un controle.

SnOOpss

Bonjour, la  je bloque sur un truc tout bete mais je voit pas du tout mon erreur. Je crée un dialogue tout bete avec 2 bouttons l'un avec le style BS_PUSHBUTTON et l'autre BS_DEFPUSHBUTTON donc normallement les deux devrait avoir BS_PUSHBUTTON.

je recupere le style avec LONG Styles = GetWindowLong(hwnd, GWL_STYLE);

Et jamais le test
if (Styles & BS_PUSHBUTTON) {
ne se valide.

J'ai meme testé
        Styles = Styles | BS_PUSHBUTTON;
        bool a = Styles & BS_PUSHBUTTON;
et a est toujours a false !

dimanche 27 août 2006 à 18:15:43 | Re : Style d'un controle.

nightlord666

Membre Club
Tu est sur que le hwnd est un handle sur le bon controle (le bouton avec BS_PUSHBUTTON) ?


Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
dimanche 27 août 2006 à 18:20:26 | Re : Style d'un controle.

SnOOpss

Oui sur et certain mais

Styles = Styles | BS_PUSHBUTTON;
 bool a = Styles & BS_PUSHBUTTON;

a doit pas etre obligatoirement a true ?
dimanche 27 août 2006 à 18:20:58 | Re : Style d'un controle.

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
Salut,
C'est tout à fait normal car BS_PUSHBUTTON vaut 0x00000000. Voici un extrait de winuser.h où les styles de boutons sont définis:

/*
 * Button Control Styles
 */
#define BS_PUSHBUTTON       0x00000000L
#define BS_DEFPUSHBUTTON    0x00000001L
#define BS_CHECKBOX         0x00000002L
#define BS_AUTOCHECKBOX     0x00000003L
#define BS_RADIOBUTTON      0x00000004L
#define BS_3STATE           0x00000005L
#define BS_AUTO3STATE       0x00000006L
#define BS_GROUPBOX         0x00000007L
#define BS_USERBUTTON       0x00000008L
#define BS_AUTORADIOBUTTON  0x00000009L
#define BS_PUSHBOX          0x0000000AL
#define BS_OWNERDRAW        0x0000000BL
#define BS_TYPEMASK         0x0000000FL
#define BS_LEFTTEXT         0x00000020L
#if(WINVER >= 0x0400)
#define BS_TEXT             0x00000000L
#define BS_ICON             0x00000040L
#define BS_BITMAP           0x00000080L
#define BS_LEFT             0x00000100L
#define BS_RIGHT            0x00000200L
#define BS_CENTER           0x00000300L
#define BS_TOP              0x00000400L
#define BS_BOTTOM           0x00000800L
#define BS_VCENTER          0x00000C00L
#define BS_PUSHLIKE         0x00001000L
#define BS_MULTILINE        0x00002000L
#define BS_NOTIFY           0x00004000L
#define BS_FLAT             0x00008000L
#define BS_RIGHTBUTTON      BS_LEFTTEXT
#endif /* WINVER >= 0x0400 */

dimanche 27 août 2006 à 19:14:12 | Re : Style d'un controle.

SnOOpss

Et du coup ya un moyen de savoir si le style BS_PUSHBUTTON est dans un style de boutton ou pas ?.
En fait dans un checkbox il n'y est pas mais il y est dans un boutton tout simple. Je peux faire par elimination (si il n'a pas le style BS_CHECBOX) mais je suis toujours intrigué j'utlise un clone de spy++ et lui arrive a faire la difference.
dimanche 27 août 2006 à 19:46:20 | Re : Style d'un controle.

racpp

Administrateur CodeS-SourceS
Selon MSDN, le style BS_PUSHBUTTON permet à la procédure de la fenêtre contenant le bouton de recevoir le message WM_COMMAND quand ce bouton est actionné. Ce style ne sert qu'à la lisibilité du code car de toute façon, tous les boutons envoient ce message à la fenêtre mère. Puisque la valeur de ce style est 0, on ne peut donc ni le récupérer, ni le supprimer, ni l'ajouter.

dimanche 27 août 2006 à 19:51:20 | Re : Style d'un controle.

racpp

Administrateur CodeS-SourceS
Snoops >> Qu'est ce que tu cherches à faire exactement?

dimanche 27 août 2006 à 20:01:53 | Re : Style d'un controle.

racpp

Administrateur CodeS-SourceS
Ce style est retrouvable par simple déduction. Si le bouton n'a pas les autres styles, alors il  a le style BS_PUSHBUTTON.

dimanche 27 août 2006 à 20:06:23 | Re : Style d'un controle.

SnOOpss

Ben en fait je "customise" des dialogs et selon le controle (radio/boutton/groupbox) je ne redessine pas la meme chose. Je vais bosser par deduction avec des elseifs en commancant par le bas et si il n'a aucun des styles speciaux je ferait un boutton banal.

Mais je ne voit pas comment spy++ arrive a voir les controles qui l'ont ou pas.
dimanche 27 août 2006 à 20:42:14 | Re : Style d'un controle.

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
Je pense que Spy++ le fait aussi par déduction. Car, apparemment, il n'y a pas d'autre moyen. Voici un petit exemple pour reconnaitre le style BS_PUSHBUTTON:
LONG Styles = GetWindowLong(hwnd, GWL_STYLE);
if(!(Styles & 0x0000000F)) -> alors le style est BS_PUSHBUTTON.

1 2

Cette discussion est classée dans : style, controle, styles, bs, pushbutton


Répondre à ce message

Sujets en rapport avec ce message

Fenêtres et controle tout moches [ par ctx_man ] Salut tout le monde.J'ai un problème que je ne comprend pas trop. J'utilise VS2005 Pro.Mon problème se situe dans la création d'interface. Quand j'uti icone + texte sur boutton [ par SnOOpss ] Bonjour tout le monde !!J arrive a mettre une icone sur un boutton ( avec le style bs_icon) mais a ce moment je n'ai plus le texte est ce qu il est po controle EDIT [ par SnOOpss ] Bonjour,  je suis en train de creer une dll qui sous classe un edit et j'aurait 2 kestions a vous demander. En fait la scrollbar a gauche de l'edit ap comment modifier un style de controle [ par LaPatoshe ] Bonjour, je osuhaite en utilisant uniquement les API en C++ modifier l'apparence d'un controle Edit en cours d'éxécution de mon programme. Je souhaite Styles de windows [ par SnOOpss ] bonjour tout le monde !!Voila en fait je chercherais le moyen de savoir si un style est present ou pas dans une fentre le seule moyen que j'ai trouvé controle carte son [ par snotsnot ] Bonjour a tous , je suis etudiant en ecole d ingé et je cherche a envoyer des signeaux precis par la carte son (sortie casque) d'un pc pour les recupe Une surface DirectDraw dans un controle MFC ? [ par TigWdz ] Bonjour,Je voudrait créer une surface DirectDraw dans une boite de dialogue MFC (dans un "Picture Control" par exemple, pour avoir de boutons a cotés) Style de mots dans une EditBox [ par PLUiK ] Salut!Je voudrais savoir si on peut changer le style de certains mots ou caractères dans une EditBox en utilisant l'API(pas entièrement, mais seulemen Slider : récup cht [ par magic_Nono ] J'ai remarqué un comportement curieux:Pour récupérer un changement sur un objet de type CSliderCtrlparmi les 3 évennement proposé, je récupère celui d debut d'un jeu [ par krovomite ] Bonjour, je dois effectuer un jeu style morpion, mais je voulais savoir par ou commencer, dans le sens ou lorsque j'ouvre Visual C++, qu'est ce que je


Nos sponsors


Sondage...

Comparez les prix

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 : 2,387 sec (3)

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