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

MFC Discussion :

[MFC]Value Controle dans un comboBox


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2002
    Messages
    106
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 106
    Par d�faut [MFC]Value Controle dans un comboBox
    Salut � tous,
    dans mon application, j'utilise un comboBox, � chaque fois que je change la s�lection, je souhaite r�cup�rer la nouvelle valeur choisie.
    J'ai donc cr��e la fonction OnSelChange et au d�part j'ai voulu r�cup�rer la nouvelle valeur avec AppWizzard en utilisant une variable Value associ�e � ce Combo comme je fais avec les edit box.
    Cependant cette variable restait toujours � "" et j'ai finalement du utiliser la fonction GetLBText qui elle marche tr�s bien.

    D�s fois que voila le code que j'ai utilis�:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    void CPreparationPageCaracterPhy::OnSelchangeChoixNatureSolide() 
    {
    	UpdateData(TRUE);
    	int cur = m_NatureSolideCtrl.GetCurSel(); 
    	m_NatureSolideCtrl.GetLBText(cur,strNatureSolide);
                    ...
    }
    m_NatureSolideCtrl �tant la variable de Control sur mon ComboBox (elle marche tr�s bien).

    Au d�but j'avais tout simplement:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    UpdateData(TRUE);
    m_strNatureSolide...;
    O� m_strNatureSolide est ma variable Value (toujours �gale � "").

    Ma question est donc la suivante: Est-ce que la variable Value cr��e par AppWizzard ne marche pas pour les Combo ou est-ce moi qui suit un manche (j'obterais plutot pour cette solution)? Et dans ce cas, qu'est-ce qui ne va pas dans mon code?

    Merci d'avance pour toute r�ponse

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut ,une bonne nouvelle , t'es pas manche ou alors on est deux ,j'ai jamais recuperer la valeur par une variable dans une combo ,mais par getcursel et compagnie...

  3. #3
    Membre confirm�
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2002
    Messages
    106
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 106
    Par d�faut
    OK merci de me rassurer
    Le lundi (surtout en d�but d'apr�s midi) j'ai comme une grosse baisse de r�gime c�r�brale ce qui fait que je suis jamais trop sur de ce que je fais pendant cette p�riode.

    Dommage que ce "bug" ne soit indiqu� nul part (en tout cas � priori pas dans msdn ni sur le site de microsoft)

  4. #4
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    c'est remoi ,
    finalement peut etre une explication je suis peut �tre manche aussi ...
    quand on regarde les macros DDX_CBSTring on s'apercoit qu'elle fait GetwindowText .
    donc ca marche que si la combo est en mode edit (dropdown) .
    si on attache la variable et que l'on change le mode apres patatra ....
    dans ce cas d'apres le code que je vois qui'il suffirait de remplacer :
    DDX_CBString par DDX_LBString
    j'ai pas essaye,c'est que j'utilises pas ces modes moi je me suis fait une combo ou la variable et le control ne font qu'un et par le biais des operateurs affectation ou (const char *)etc .. j'affecte/recupere la valeur en temps reel sans faire updateData.

  5. #5
    Membre confirm�
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2002
    Messages
    106
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 106
    Par d�faut
    Re,
    merci de te pencher comme cela sur mon probl�me.
    J'ai donc essay� ta solution (j'aurais du me poser la question de savoir si le code de classWizzard engendr� �tait le bon, bien vu de ta part d'y avoir pens�) mais malheureusement les r�sultats semblent �tre les m�me.

    Honn�tement j'ai juste essay� vite fait sans chercher � aller plus loin car on doit fournir la premi�re version du logiciel aux futurs utilisateurs dans deux semaines donc en ce moment je peux pas trop perdre de temps (je m'accorde toute fois quelques pauses sur developpez )

    Merci encore pour avoir cherch� une solution

  6. #6
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    apres verifications effectivement �a marche pas j'ai refait ma propre version
    "transparente" pour l'utilisateur la c'est bon:
    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
     
    #define DDX_LBString(pdx,nidc,value) DDX_LBCString(pdx,nidc,value)
    void AFXAPI DDX_LBCString(CDataExchange* pDX, int nIDC, CString& value)
    {
    	HWND hWndCtrl = pDX->PrepareCtrl(nIDC);
    	if (pDX->m_bSaveAndValidate)
    	{
    		CComboBox *pCombo=(CComboBox *)pDX->m_pDlgWnd->GetDlgItem(nIDC);
    		int nIndex = pCombo->GetCurSel();
    		if (nIndex !=LB_ERR) pCombo->GetLBText(nIndex,value);		
    		else
    		{
    			// no selection
    			value.Empty();
    		}
    		value.ReleaseBuffer();
    	}
    	else
    	{
    		CComboBox *pCombo=(CComboBox *)pDX->m_pDlgWnd->GetDlgItem(nIDC);
    		// set current selection based on data string
    		if(pCombo->SelectString(0,value)==LB_ERR)
    		{
    			// no selection match
    			TRACE0("Warning: no listbox item selected.\n");
    		}
    	}
    }
    ca fonctionne tres bien comme �a ,je sais pas ce qu'ils ont foutus j'ai pas chercher � approfondir le sujet..

  7. #7
    Membre confirm�
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2002
    Messages
    106
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 106
    Par d�faut
    Merci pour tout

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [MFC] DirectX, Controle dans CFormView
    Par Astraya dans le forum Visual C++
    R�ponses: 1
    Dernier message: 03/04/2008, 15h21
  2. R�ponses: 3
    Dernier message: 27/03/2008, 11h53
  3. controler le format de saisie dans un combobox
    Par oscar.cesar dans le forum Macros et VBA Excel
    R�ponses: 9
    Dernier message: 15/03/2008, 13h26
  4. MFC image video dans une picture control
    Par PePedu78 dans le forum MFC
    R�ponses: 1
    Dernier message: 11/01/2008, 10h23
  5. R�ponses: 12
    Dernier message: 08/02/2006, 17h28

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