CComboboxEx dans une toolbar

drak_ ramore Messages postés 4 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 10 mars 2004 - 23 févr. 2004 à 17:37
drak_ ramore Messages postés 4 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 10 mars 2004 - 24 févr. 2004 à 16:10
Bonjour, je n'arrive pas à recupperer la valeur selectionnée dans la comboboxex.

Elle a été construite de cette maniere :

m_wndToolBar.SetButtonInfo(16, AFX_IDW_TOOLBAR + 16, TBBS_SEPARATOR, 205);

m_wndToolBar.GetToolBarCtrl().GetItemRect(16, &rect);
rect.top = 1;
rect.bottom = rect.top + 250 /*drop height*/;

if(!m_wndUtilisateur.Create(CBS_DROPDOWNLIST | CBS_SORT | WS_VISIBLE |WS_TABSTOP | WS_VSCROLL, rect,)&m_wndToolBar, AFX_IDW_TOOLBAR + 1)
{
TRACE(_T("Failed to create combo-box\n"));
return FALSE;
}

Pour recuperer la valeur selectionnée j'utilise :

ON_CBN_SELCHANGE(AFX_IDW_TOOLBAR + 1,ComboUtilisateurSelect)

m_wndUtilisateur. :big) GetWindowText(string);
ou
m_wndUtilisateur.GetLBText(m_wndUtilisateur.GetCurSel(),string);

mais aucune de ces deux instructions ne fonctionne.
Comprend pas.

HELP !!!!!!
Merci.

2 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
24 févr. 2004 à 00:18
dans quelle classe traite-tu ce message ?
CBN_SELCHANGE est envoyé au parent du contrôle en l'occurence le toolbar. c'est dans cette classe qu'il faut traiter ce message (il va peut-être falloir surcharger) et non pas le parent de la toolbar (la fenêtre principale).

pour le vérifier, regarde si ta fonction
ComboUtilisateurSelect est appelée.
0
drak_ ramore Messages postés 4 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 10 mars 2004
24 févr. 2004 à 16:10
Bonjour ymca2003

Le mesage "ON_CBN_SELCHANGE(AFX_IDW_TOOLBAR + 1,ComboUtilisateurSelect)" est traité dans la classe CMainframe

La CComboxEx est declaré dans la classe CNewToolbar.

class CNewToolBar : public CToolBar
{
DECLARE_DYNAMIC(CNewToolBar)

public:
CNewToolBar();
virtual ~CNewToolBar();
CComboBoxEx m_wndUtilisateur;
....

Et m_wndToolBar est declaré dans CMainframe

CNewToolBar m_wndToolBar;

Je la creer de cette maniere:

if(! m_wndToolBar.m_wndUtilisateur.Create(CBS_DROPDOWNLIST | CBS_SORT | WS_VISIBLE |WS_TABSTOP | WS_VSCROLL, rect,)&m_wndToolBar, AFX_IDW_TOOLBAR + 1)
{
TRACE(_T("Failed to create combo-box\n"));
return FALSE;
}

Les valeur sont correctement inserrée dans "m_wndUtilisateur"
avec la fonction Charge_Utilisateur();

La fonction ComboUtilisateurSelect() est correctement traitée
mais "string" reste vide.

CString string est declaré dans CMainframe.

void CMainFrame::ComboUtilisateurSelect()
{

UpdateData(true);

//Charge_Utilisateur();

m_wndToolBar.m_wndUtilisateur.GetWindowText(string);

/*m_wndToolBar.m_wndUtilisateur.GetLBText(m_wndUtilisateur.GetCurSel(),string);*/

}

:)
0
Rejoignez-nous