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]activer/desactiver dynamiquement l'ascenseur de listbox


Sujet :

MFC

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 97
    Points : 26
    Points
    26
    Par défaut [MFC]activer/desactiver dynamiquement l'ascenseur de listbox
    bonjour,

    je cherche un moyen de supprimer l'ascenseur vertical d'une listBox personalisée, et d'ensuite le réafficher pour le reste de mon programme.

    exist-il une fonction qui puisse cacher cet ascenseur?

    merci

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    il faut decocher l'option vertical scroll dans les ressources.
    par programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MyListBox.ModifyStyle(WS_VSCROLL,0); // enleve la scrollbar
    MyListBox.ModifyStyle(0,WS_VSCROLL); // remet la scrollbar
    faire un Invalidate() derriere .


  3. #3
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    talistbox.ModifyStyle(WS_VSCROLL,0,0);
    je penses
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 97
    Points : 26
    Points
    26
    Par défaut
    merci a vous deux, je testerai ça dès que possible.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 97
    Points : 26
    Points
    26
    Par défaut
    ha ben non ca marche pas,
    j'ai decocher l'option, et quand j'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    m_MyListBox.ModifyStyle(0,WS_VSCROLL); // remet la scrollbar
    Invalidate();
    ca fait rien

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    Citation Envoyé par mandagor
    ha ben non ca marche pas,
    j'ai decocher l'option, et quand j'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    m_MyListBox.ModifyStyle(0,WS_VSCROLL); // remet la scrollbar
    Invalidate();
    ca fait rien
    invalidate sur la listbox ...

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 97
    Points : 26
    Points
    26
    Par défaut
    bon ben j'ai essayé plein de truc
    -option coché, j'ai essayer de l'afficher
    -option décoché, j'ai essayer de la supprimer
    avec des m_MyListBox.Invalidate() des RedrawWindow et autre UpdateWindow aussi bien sur ma CMylistbox que sur les Cwnd...

    rien n'y fait c'est bizard!!

  8. #8
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    re, apparemment c'est pas possible
    il faut recreer la listbox apres le changement de style.
    donc on procedera par recopie des infos de l'objet a l'identique :

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    //---------------------------------------
    BOOL CMyListBox::Recreate(LPVOID lpParam/*=0*/)
    {
     
    	if (GetSafeHwnd() == NULL)	return FALSE;
     
    	CWnd* pParent = GetParent();
    	if (pParent == NULL) return FALSE;
     
    	// get current attributes
    	DWORD dwStyle = GetStyle();
    	DWORD dwStyleEx = GetExStyle();
    	CRect rc;
     
    	GetWindowRect(&rc);
    	pParent->ScreenToClient(&rc);	// map to client co-ords
    	UINT nID = GetDlgCtrlID();
    	CFont* pFont = GetFont();
    	CWnd* pWndAfter = GetNextWindow(GW_HWNDPREV);
     
    	// get the currently selected text (and whether it is a valid list selection)
    	CString sCurText;
    	int nCurSel = GetCurSel();
    	BOOL bItemSelValid = nCurSel != -1;
    	if (bItemSelValid)	GetText(nCurSel, sCurText);
     
    	CMyListBox listboxNew;
    	if (! listboxNew.CreateEx(dwStyleEx, _T("ListBox"), _T(""), 
                                     dwStyle, rc, pParent, nID, lpParam))
    	 return FALSE;
     
    	listboxNew.SetFont(pFont);
     
    	int nNumItems = GetCount();
     
    	for (int n = 0; n < nNumItems; n++)
    	{
    		CString sText;
    		GetText(n, sText);
    		int nNewIndex = listboxNew.AddString(sText);
    		listboxNew.SetItemData(nNewIndex,GetItemData(n));
    	}
    	// re-set selected text
    	if (bItemSelValid)
    		listboxNew.SetCurSel(listboxNew.FindStringExact(-1, sCurText));
     
     
    	// destroy the existing window, then attach the new one
    	DestroyWindow();
    	HWND hwnd = listboxNew.Detach();
    	Attach(hwnd);
     
    	// position correctly in z-order
    	SetWindowPos(pWndAfter == NULL ? 
                                    &CWnd::wndBottom : 
                                   pWndAfter, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
     
    	return TRUE;
    }
    utilisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void CCustomListBoxView::OnButtonscroll() 
    {
    	// TODO: Add your control notification handler code here		m_CustomListBoxVar.ModifyStyle(m_bScroll?WS_VSCROLL:0,!m_bScroll?WS_VSCROLL:0);
    	m_bScroll=!m_bScroll;
    	m_CustomListBoxVar.Recreate();
    }
    Note:j'ai mis a jour mon projet customlistbox sur mon domaine.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 97
    Points : 26
    Points
    26
    Par défaut
    wahouuu

    ca marche super, merci

    avoir ton nivo en prog ca me fait rever

    ++

  10. #10
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    t'as plus qu'a bosser lol
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

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

Discussions similaires

  1. appel de fonction à partir d'une image activer/desactiver
    Par philippe123 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/08/2005, 16h26
  2. Réponses: 9
    Dernier message: 13/04/2005, 10h15
  3. [JMenuItem] activer/desactiver
    Par rvfranck dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 11/04/2005, 15h06
  4. les event de IBQuery pour activer,desactiver la Transaction?
    Par amad206 dans le forum Bases de données
    Réponses: 1
    Dernier message: 31/03/2005, 14h12
  5. Activer/Desactiver une connexion au réseau local
    Par Yodagobah dans le forum MFC
    Réponses: 7
    Dernier message: 05/01/2005, 17h17

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