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 :

CListCtrl et scrolling


Sujet :

MFC

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 6
    Par défaut CListCtrl et scrolling
    Bonjour,

    j'ai une application avec un dialogue et des controles.
    Un de mes controles est un CListCtrl qui possede un barre de scrolling vertical.
    Lorsque je me deplace avec les touches le focus va de controle en controle et lorsqu'il arrive sur le listctrl il se deplace ligne par ligne.
    Ce que je voudrais c'est que lorsque le focus arrive sur mon clistctrl et que je me deplace vers le bas ou le haut que ce soit la barre de scroll qui bouge.
    En gros je ne veux pas me deplacer a l'interieur de mon CListCtrl je veux juste deplacer la barre.

    J'ai commencé par ca :

    BEGIN_MESSAGE_MAP(CHistoryListCtrl, CListCtrl)
    ON_WM_CREATE()
    ON_WM_SIZE()
    ON_WM_VSCROLL()
    ON_NOTIFY_REFLECT(LVN_ITEMCHANGED, &CHistoryListCtrl::OnLvnItemchanged)
    END_MESSAGE_MAP()


    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
     
     
    void CHistoryListCtrl::OnLvnItemchanged(NMHDR *pNMHDR, LRESULT *pResult)
    {
    	LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
    	/*if (IsItemDisabled(pNMLV->iItem) && 
    		(pNMLV->uNewState & LVIS_SELECTED) == LVIS_SELECTED)
    	{
    		SetItemState(pNMLV->iItem, 0, LVIS_SELECTED|LVIS_FOCUSED); 
    	}*/
     
    	*pResult = 0; 
    }
     
    BOOL CHistoryListCtrl::PreTranslateMessage(MSG* pMsg)
    {
     
    	switch (pMsg->message)
    	{
    	case WM_KEYUP:
    		TRACE( _T("\nWM_KEYUP : ") );
    		switch(pMsg->wParam)
    		{
    		case VK_UP:
    			TRACE(_T("VK_UP"));
    			//RedirectVScroll(SB_LINEUP, 0, NULL);
    			//HandleScroll( VK_UP );
    			//return TRUE;
    			break;
     
    		case VK_DOWN:
    			TRACE(_T("VK_DOWN"));
    			//RedirectVScroll(SB_LINEDOWN, 0, NULL);
    			//HandleScroll( VK_DOWN );
    			//return TRUE;
    			break;
    		}
    		break;
    	}
     
    	return CListCtrl::PreTranslateMessage( pMsg );
    }[/B]
    Mais ensuite je ne vois pas trop comment empecher le survol de mes items et comment deplacer la barre de scroll en fonction des touches.

  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,
    le mieux serait d'essayer de donner le focus a la scrollbar...
    la gestion des touches serait ensuite gérée par la scrollbar.

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/08/2012, 14h47
  2. Scroll bar dynamique dans CListCtrl
    Par Alouka dans le forum MFC
    Réponses: 5
    Dernier message: 21/01/2008, 10h57
  3. le fameux scrolling
    Par tanmieu dans le forum DirectX
    Réponses: 4
    Dernier message: 27/05/2003, 23h25
  4. scrolling vertical et horizontal
    Par myriam dans le forum MFC
    Réponses: 2
    Dernier message: 24/01/2003, 17h06
  5. scroll dans un label
    Par Pretender dans le forum Composants VCL
    Réponses: 9
    Dernier message: 27/09/2002, 17h06

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