IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

action updown control


Sujet :

Windows

  1. #1
    Invité
    Invité(e)
    Par défaut
    bonjour

    voilà : vous vous rappelez de ce que je voulais obtenir pour mon updown control ?

    bon eh bien là j'aimerais qu'il affiche 2 valeurs : une de chaque côté : 720 x 576

    en fait c'est la résolution d'une vidéo

    et j'aimerais qu'il affiche la valeur précédente -1 en cliquant flèche bas et + 1 en cliquant flèche haut (augmenter ou diminuer la résolution)

    pour ça j'avais pour idée d'afficher une editbox de chaque côté : mais comment faire passer les variables et les afficher à l'intérieur ?

    PS : le langage étant du c++
    Dernière modification par ram-0000 ; 18/09/2009 à 16h51. Motif: fusion des messages

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 655
    Par défaut
    Citation Envoyé par gizmo27 Voir le message
    bonjour

    voilà : vous vous rappelez de ce que je voulais obtenir pour mon updown control ?
    Non, une référence sur la discussion au moins, SVP.

  3. #3
    Invité
    Invité(e)
    Par défaut
    quand je dis updown control je fais référence à ceci : http://msdn.microsoft.com/en-us/library/bb759889(VS.85).aspx

    et le sujet de discussion relatif à cela est ici : http://www.developpez.net/forums/d796978/general-developpement/programmation-windows/utilisation-scrollbar/

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 411
    Par défaut
    Typiquement, un up-down "de base" ne peut être associé qu'à une seule EditBox.
    Mais peut-être y a-t-il un moyen de traiter ses messages directement depuis la fenêtre parente, auquel cas tu pourrais faire tout ce que tu veux quand une de ses flèches est cliquée...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Invité
    Invité(e)
    Par défaut
    je vais donner un exemple plus concret que ça

    faisons simple pour commencer : disons mon updown est reliée à une seule editbox

    j'aimerais qu'il affiche disons 720 par défaut au début

    et quand je clique sur la flèche bas il met 699

    je clique une autre fois : 698, etc... jusqu'à mettons 10

    j'avais pensé à un switch-case...

    mais comment lui dire d'afficher telle ou telle valeur dans l'editbox ?

    et surtout comment lui dire "je clique flèche haut fais ceci" et "je clique flèche bas fais cela"

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 411
    Par défaut
    Normalement, pour un truc simple, il te suffit d'initialiser l'editbox à "700" et de la régler comme "buddy" du contrôle up-down.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Invité
    Invité(e)
    Par défaut
    ah ok merci

    dommage que ce site de msdn.com ne soit pas traduit en français

  8. #8
    Invité
    Invité(e)
    Par défaut
    salut

    de retour le nez dans mon programme

    sur la page je n'ai pas bien saisi comment utiliser les "UDM_SETBUDDY" et wparam : le "hwndBuddy" c'est le nom de mon contrôle updown ?

    mais alors je mets pareil pour "UDM_SETBUDDY" ? y'a un truc qui cloche...

  9. #9
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 411
    Par défaut
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    SendMessage(hwndControleUpDown, UDM_SETBUDDY, (WPARAM)hwndEditBox, 0);
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Invité
    Invité(e)
    Par défaut
    le "UDM_SETBUDDY" est laissé sans paramètre ?

    pour le wparam je mets le nom de mon contrôle updown ? ou je laisse "hwndEditBox" ?

  11. #11
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 411
    Par défaut
    Citation Envoyé par gizmo27 Voir le message
    le "UDM_SETBUDDY" est laissé sans paramètre ?

    pour le wparam je mets le nom de mon contrôle updown ? ou je laisse "hwndEditBox" ?
    Je pensais avoir été assez clair: dans le WPARAM, tu mets le HWND du contrôle EditBox que tu veux lier au contrôle UpDown...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Invité
    Invité(e)
    Par défaut
    j'aimerais me débrouiller tout seul mais ça m'agace : sur le net il n'y a quasi pas de doc pour ça

    j'ai mis les editbox en setbuddy, j'aurais aimé savoir ensuite comment gérer les actions de l'updown : exemple tout simple : je clique flèche haut => tu augmentes de 16
    je clique flèche bas tu diminues de 16

  13. #13
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 411
    Par défaut
    Ça ne marche pas tout seul avec le SetBuddy? Je croyais...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #14
    Invité
    Invité(e)
    Par défaut


    ok je vais voir ça en détail

  15. #15
    Invité
    Invité(e)
    Par défaut
    alors voilà :

    dans ma création de boutons et editbox j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
            weight = 720;	
    	_stprintf(bufw, TEXT("%d"), weight);
    	hEdit=CreateWindow( "EDIT",
                            bufw,
                            WS_VISIBLE|WS_CHILD|WS_BORDER|ES_CENTER|ES_READONLY ,
                             10+248,10+172,40,20,fenetrePrincipale,(HMENU)ID_EDITBOX_3,instance,NULL);
    	
    	height = 576;	
    	_stprintf(bufh, TEXT("%d"), height);
    	hEdit=CreateWindow( "EDIT",
                            bufh,
                            WS_VISIBLE|WS_CHILD|WS_BORDER|ES_CENTER|ES_READONLY ,
                             10+313,10+172,40,20,fenetrePrincipale,(HMENU)ID_EDITBOX_4,instance,NULL);
    lors de l'exe j'ai bien 720 et 576 qui s'affichent sans problème

    un peu plus loin dans les évènements de clic j'ai écrit ceci :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    switch(iId)
        {	
            case ID_PUSHBUTTON_1:
    		    {
    		    bitrate=GetDlgItemInt(fenetrePrincipale, (HMENU)ID_EDITBOX_1, NULL, FALSE);
    			if (bitrate==' ')
    			   bitrate=0;			
    			}
    		    break;
    			
    		case ID_PUSHBUTTON_2:
    		    if (mon_booleen == 1)
    			{			
                freefps=GetDlgItemText(fenetrePrincipale, (HMENU)ID_EDITBOX_2, NULL, 6);			
    			fps=strtod(freefps, NULL);			
    			}
                break;
    		
            case ID_PUSHBUTTON_3:
                DestroyWindow(fenetrePrincipale);
                break;
    			
    		case ID_RADIOBUTTON_11:
    		    mon_booleen=0;
    		    fps=25;			
    		    break;
    			
    		case ID_RADIOBUTTON_12:
    		    mon_booleen=0;
    		    fps=23.976;			
    		    break;
    			
    		case ID_RADIOBUTTON_13:		    		    
    		    mon_booleen=1;						
    		    break;
    			
            case ID_CHECKBOX_1:        
                AfficheActionCheckBox(iId-ID_CHECKBOX_1,hCtl,fenetrePrincipale);			
                break;
    		
    	case ID_UPDOWN:
    		{
    		SendMessage(ID_UPDOWN, UDM_SETBUDDY, (WPARAM)ID_EDITBOX_3, 0);			
    		weight = 719;
    		_stprintf(bufw, TEXT("%d"), weight);
    		hEdit=CreateWindow( "EDIT",
                            bufw,
                            WS_VISIBLE|WS_CHILD|WS_BORDER|ES_CENTER|ES_READONLY ,
                             10+248,10+172,40,20,fenetrePrincipale,(HMENU)ID_EDITBOX_3,instance,NULL);
    			}
        }
    lors de l'exécution du programme ça n'affiche pas 719 alors que j'ai bien précisé

  16. #16
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 411
    Par défaut
    Bonjour,
    1. GetDlgItemInt() ne te renvoie pas un char, tu ne peux donc pas le comparer à ' '.
    2. GetDlgItemText() ne s'emploie pas ainsi.
    3. Aussi, tu n'as besoin de caster en (HMENU) que dans le CreateWindow; normalement, le cast est inutile ailleurs.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  17. #17
    Invité
    Invité(e)
    Par défaut
    il doit sûrement y a voir une confusion : ça n'est pas ce que je demande

    en fait je m'intéresse à cette partie du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    case ID_UPDOWN:
    		{
    		SendMessage(ID_UPDOWN, UDM_SETBUDDY, (WPARAM)ID_EDITBOX_3, 0);			
    		weight = 719;
    		_stprintf(bufw, TEXT("%d"), weight);
    		hEdit=CreateWindow( "EDIT",
                            bufw,
                            WS_VISIBLE|WS_CHILD|WS_BORDER|ES_CENTER|ES_READONLY ,
                             10+248,10+172,40,20,fenetrePrincipale,(HMENU)ID_EDITBOX_3,instance,NULL);
    		}
    lors de l'exe du programme quand je clique sur l'updown control il n'affiche pas 719, ce que je voudrais qu'il affiche

  18. #18
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 411
    Par défaut
    C'est un bordel monstre:
    1. Tu confonds ID et HWND
    2. Tu re-crées ton EditBox dans l'événement

    Tout doit être fait une fois pour toutes dans le traitement de WM_INITDIALOG (ou WM_CREATE si c'est une fenêtre ordinaire), y compris le UDM_SETBUDDY.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  19. #19
    Invité
    Invité(e)
    Par défaut
    pour ce qui est de confondre ID et HWND : le code aurait du être le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SendMessage(ID_UPDOWN, UDM_SETBUDDY, (WPARAM) (HWND) ID_EDITBOX_3, 0);
    ?????????????????????????????

    le ID_ que je mets devant je le mets dans define lorsque je définis mes boutons et mes editbox

  20. #20
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    GetDlgItemInt() ne te renvoie pas un char, tu ne peux donc pas le comparer à ' '.
    GetDlgItemInt() renvoie un int et en effet ' ' est un char : donc comment faire ?

    _stprintf ne fera pas l'affaire

    j'avais pensé à introduire une nouvelle variable char et mettre if ... alors bitrate = 0

    non ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Appeler une action via controller::action() ?
    Par Khleo dans le forum MVC
    Réponses: 2
    Dernier message: 20/02/2013, 17h38
  2. equivalent updown control pour Linux
    Par Invité dans le forum Linux
    Réponses: 1
    Dernier message: 31/03/2010, 10h34
  3. Variables communes aux actions du controller
    Par Louis-Guillaume Morand dans le forum Zend Framework
    Réponses: 2
    Dernier message: 25/09/2007, 23h34
  4. Faire une action sur Control + C
    Par bluecurve dans le forum Langage
    Réponses: 1
    Dernier message: 20/07/2006, 00h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo