begin process at 2012 02 10 20:51:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

GUI

 > 

Probleme avec les checks des menu.


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

Probleme avec les checks des menu.

jeudi 25 juin 2009 à 18:13:11 | Probleme avec les checks des menu.

SergentP

Salut,
J'ai un item dans un menu qui est CHECKED d'origine, ensuite j'ai le code suivant :

-----
        case ID_B_AFFICHER_SOCK:
            GetMenuItemInfo( hMenu, ID_B_AFFICHER_SOCK, 0, &MenuInfo );
            switch ( MenuInfo.fState )
            {
            case MF_CHECKED:
                CheckMenuItem( hMenu, ID_B_AFFICHER_SOCK, MF_UNCHECKED );
                ShowWindow( NBSock, SW_HIDE );
                break;

            case MF_UNCHECKED:
                CheckMenuItem( hMenu, ID_B_AFFICHER_SOCK, MF_CHECKED );
                ShowWindow( NBSock, SW_SHOW );
                break;
            }
            break;
-----
Or, quand je clique sur cet item il reste en position CHECKED, je ne comprend pas pourquoi.
Merci d'avance .

vendredi 26 juin 2009 à 06:26:36 | Re : Probleme avec les checks des menu.

aardman

Membre Club
Salut,
tu ne peux pas faire de switch sur fState car ce membre peut contenir plusieurs valeurs a la fois (chaque valeur représente un bit précis de la variable). il faut donc tester séparement les valeurs qui t'interessent:
if(MenuInfo.fState & MFS_CHECKED) { ... }
else if(MenuInfo.fState & MFS_UNCHECKED) { ... }

vendredi 26 juin 2009 à 08:39:43 | Re : Probleme avec les checks des menu.

SergentP

J'ai fait comme tu dit (j'avais déjà essayé) : le menu se décoche mais ne se coche plus :

---
        case ID_B_AFFICHER_SOCK:
            GetMenuItemInfo( hMenu, ID_B_AFFICHER_SOCK, 0, &MenuInfo );
            if( MenuInfo.fState = MF_CHECKED )
            {
                CheckMenuItem( hMenu, ID_B_AFFICHER_SOCK, MF_UNCHECKED );
                ShowWindow( NBSock, SW_HIDE );
            }
            if( MenuInfo.fState = MF_UNCHECKED )
            {
                CheckMenuItem( hMenu, ID_B_AFFICHER_SOCK, MF_CHECKED );
                ShowWindow( NBSock, SW_SHOW );
            }
            break;
---

C'est bisare.
vendredi 26 juin 2009 à 09:06:58 | Re : Probleme avec les checks des menu.

aardman

Membre Club
c'est pas du tout ce que j'ai dis :)
vendredi 26 juin 2009 à 09:45:56 | Re : Probleme avec les checks des menu.

SergentP

?
Je dois paraitre lourd mais les valeurs sont testés séparément, tu veux parlé de l'opérateur & ? Si c'est ça, ça ne marche pas non plus :/
samedi 27 juin 2009 à 09:29:13 | Re : Probleme avec les checks des menu.

aardman

Membre Club
Salut,
je parlais effectivement du &, si ça ne fonctionne toujours pas, peut-etre que tu n'as pas correctement initialisé la structure MenuInfo avant d'appeler GetMenuItemInfo() ?
mardi 30 juin 2009 à 19:05:49 | Re : Probleme avec les checks des menu.

SergentP

---------
MENUITEMINFO MenuInfo;

GetMenuItemInfo( hMenu, ID_B_AFFICHER_SOCK, 0, &MenuInfo );

if ( MenuInfo.fState = MFS_CHECKED )
...
---------
Rien de plus sur la structure. Le plus bizarre dans tout ça c'est que j'utilise cette structure plus haut dans mon code(différemment) et ça marche.
mercredi 1 juillet 2009 à 01:57:16 | Re : Probleme avec les checks des menu.

aardman

Membre Club
Salut,
il faut initialiser certains membres de la structure avant d'appeler GetMenuItemInfo.
et tu as toujours pas corrigé le =.


Cette discussion est classée dans : afficher, id, sock, checked, mf


Répondre à ce message

Sujets en rapport avec ce message

Problème de menu grisés [ par camel ] mon problème est simple : je grise un menu, mais ensuite j'arrive pas le dégriser ;( je sais pas comment faire. merci de m'aidervoici les 2 fonctions Hook clic droit sur la titlebar [ par reptils ] Salut a tous,J'ai un p'ti probleme avec le programme que j'essaies de faire. Je voudrais faire un virtual desktop, et pour cela j'aimerais que lorsque listbox afficher détails fichiers d'un repertoire [ par bougnat83 ] bonjourVisual C++ 6.0, MFCj'arrive à afficher dans une listbox la liste des fichiers contenu dans un repertoire donné avec :::SendMessage(hListBox, LB listcontrol : afficher liste fichiers d'un repertoire avec détails [ par bougnat83 ] Bonjour.Visual C++ 6.0, MFC.J'ai créé une mfc listcontrol. Je souhaiterais y afficher les fichiers d'un repertoire spécifique dans une colonne et dans creer une fenetre c: pour afficher l'arborescence de mon PC [ par blinix123 ] Yop!Bon je sais le titre n'est pas très explicite mais je ne savais comment mettre en titre ce que je vaix expliquer  :-°  (du moins tenter d'explique poublem descripteur socket [ par stillfelil ] Bonjour je vien de creer un programme Serveur mais voila j'ai un probleme avec le descripteur SOCKET du client retourné par acceptca me donne toujour Gif et Cximage [ par websinh ] Bonjour à tous,J'ai consulté de nombreux forums, mais je n'ai pas pu trouver mon bonheure.J'utilise la bibliothèque CXImage pour pouvoir afficher un G Multi-Lights OpenGL [ par manolobis ] Bonjour,J'ai un problèmes de lumières sous OpenGL:J'ai créé une structure de 8 lumières dans mon application mais seule la 1ère lumière éclaire la scè Gif et Cximage [ par websinh ] Bonjour à tous,J'ai consulté de nombreux forums, mais je n'ai pas pu trouver mon bonheure.J'utilise la bibliothèque CXImage pour pouvoir afficher un G C/C++ [ par Ziman ] Bonjour,je vais poser une question qi va vous sembler bizarre mais je me pose cette question. J'apprend en ce moment l'API WIN32 en C et bientot, je v


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,936 sec (3)

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