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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 512
    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 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    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 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    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
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Voici un code fait en une vingtaine de minutes:
    Code C : 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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    #include <windows.h>
    #include <commctrl.h>
    #include <tchar.h>
     
    #pragma comment(lib, "comctl32.lib")
     
    #define IDC_EDIT1 10001
    #define IDC_UPDOWN1 10002
     
    LRESULT CALLBACK TestUpDownWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
    	LRESULT ret = 0;
    	switch(uMsg)
    	{
    	case WM_CREATE:
    		{
    		HWND hEdit = CreateWindowEx(0, _T("EDIT"), _T("42"), ES_NUMBER|WS_BORDER|WS_VISIBLE|WS_CHILD, 20, 20, 80, 20, hWnd, (HMENU)IDC_EDIT1, NULL, NULL);
    		HWND hUpDown = CreateWindowEx(0, UPDOWN_CLASS, _T("UpDown1"), WS_VISIBLE|WS_BORDER|WS_CHILD|UDS_SETBUDDYINT, 120, 20, 20, 20, hWnd, (HMENU)IDC_UPDOWN1, NULL, NULL);
    		SendDlgItemMessage(hWnd, IDC_UPDOWN1, UDM_SETBUDDY, (WPARAM)hEdit, 0);
    		}
    		break;
    	case WM_DESTROY:
    		PostQuitMessage(0);
    		break;
    	default:
    		ret = DefWindowProc(hWnd, uMsg, wParam, lParam);
    		break;
    	}
    	return ret;
    }
     
    void TestUpDown(void)
    {
    	{
    		INITCOMMONCONTROLSEX icx = {0};
    		icx.dwSize = sizeof icx;
    		icx.dwICC = ICC_UPDOWN_CLASS;
    		//#ifdef ICC_STANDARD_CLASSES
    		//icx.dwICC |= ICC_STANDARD_CLASSES;
    		//#endif
    		if(!InitCommonControlsEx(&icx))
    		{
    			DWORD err = GetLastError();
    			MessageBox(NULL, _T("Échec de InitCommonControlsEx()"), NULL, MB_OK);			
    			return;
    		}
    	}
    	{
    		WNDCLASSEX wcx = {0};
    		wcx.cbSize = sizeof wcx;
    		wcx.hbrBackground = (HBRUSH)(COLOR_3DFACE+1);
    		wcx.hCursor = LoadCursor(NULL, IDC_ARROW);
    		wcx.hInstance = GetModuleHandle(NULL);
    		wcx.lpfnWndProc = TestUpDownWndProc;
    		wcx.lpszClassName = _T("TestUpDown");
    		wcx.style = CS_HREDRAW|CS_VREDRAW;
    		if(!RegisterClassEx(&wcx))
    		{
    			MessageBox(NULL, _T("Échec de RegisterClassEx()"), NULL, MB_OK);
    			return;
    		}
    	}
     
    	{
    		HWND hWnd = CreateWindowEx(0, _T("TestUpDown"), _T("Test contrôle UpDown"),
    		 WS_OVERLAPPEDWINDOW|WS_VISIBLE,
    		 CW_USEDEFAULT, 0, 320, 240, NULL, NULL, GetModuleHandle(NULL), NULL
    		 );
    		MSG msg;
    		if(hWnd==NULL)
    		{
    			MessageBox(NULL, _T("Échec de CreateWindowEx()"), NULL, MB_OK);
    			return;
    		}
    		else
    			ShowWindow(hWnd, SW_SHOWNORMAL);
     
    		while(GetMessage(&msg, NULL, 0, 0)>0)
    		{
    			TranslateMessage(&msg);
    			DispatchMessage(&msg);
    		}
    	}
    }
    Apparemment, il manquait juste le style UDS_SETBUDDYINT.
    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.

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

    merci pour le code c'est sympa

    de mon côté j'ai demandé et un developpeur de doom9 m'a dit qu'on pouvait s'arranger pour obtenir la position du curseur : si la position est inférieure à la première alors c'est la flèche bas

    apparement il faut jeter un oeil au source de DGIndex : au niveau de la boîte de dialogue "Luminance"

    je vais voir pour les 2

  9. #9
    Invité
    Invité(e)
    Par défaut
    bonjour à tous,

    juste une petite question toute bête à propos du code que vous avez fait :A quoi sert le 'void' entre parenthèses, que signifie-t-il ? Jusqu'ici j'avais vu qu'on mettait VOID pour créer une fonction

    je ne comprend pas bien. merci de m'apporter quelques lumières là-dessus.

    EDIT : finalement j'ai décidé de faire différemment : je vais remplacer l'updown crée par deux push buttons que je disposerai comme l'updown mais à la place il y aura '+' et '-'

    il me semble que c'est plus sage et moins compliqué pour moi pour le moment

    ce qui n'empêche que je revienne dessus plus tard
    Dernière modification par Invité ; 11/11/2009 à 19h17.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Citation Envoyé par gizmo27 Voir le message
    bonjour à tous,

    juste une petite question toute bête à propos du code que vous avez fait :A quoi sert le 'void' entre parenthèses, que signifie-t-il ? Jusqu'ici j'avais vu qu'on mettait VOID pour créer une fonction

    je ne comprend pas bien. merci de m'apporter quelques lumières là-dessus.
    C'est une base du C, ça.

    Dans la définition d'une fonction, c'est équivalent à ceci:
    Mais quand on fait une simple déclaration, il y a une différence subtile: Si on oublie de préciser void, le C traite ça comme une fonction qui accepte n'importe quoi comme paramètres. (on dit que la fonction est déclarée, mais n'a pas de prototype). Et c'est pas bien.
    Donc, je prends le réflexe de toujours mettre void quand une fonction ne prend pas de paramètres du tout.
    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.

  11. #11
    Invité
    Invité(e)
    Par défaut
    merci pour l'info

    j'en prend note

    mais je ne savais pas : ça ne figure pas sur mes vieux cours d'infos... comme quoi

+ Répondre à la discussion
Cette discussion est résolue.

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