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 :

scrollwindow- boite de dialogue


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 37
    Par défaut scrollwindow- boite de dialogue
    Bonjour,
    j'essaie desesperement de faire fonctionner une scroll bar vertical.
    En fait, j'ai une boite de dialogue dans laquelle j'ai mis la propriété vertical scroll à true pour afficher ma scrollbar.
    J'utilise l'evenement OnVScroll dans lequel j'appelle la fonction scrollWindow().
    Mais rien ne se passe. je ne comprends pas !
    Quelqu'un a-t-il une reponse à mon problème.
    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
    Par défaut
    salut,
    Une Cdialog ne sait pas gérer une scrollbar...


  3. #3
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 37
    Par défaut
    Alors je dois utiliser le controle scrollbar a la place de celle de la CDialog ?

  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
    Qu’est ce que tu veux faire ?

  5. #5
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 528
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 528
    Par défaut
    Citation Envoyé par ptitesouris
    Alors je dois utiliser le controle scrollbar a la place de celle de la CDialog ?
    Non comme le dit Farscape on ne peut pas faire de défilement avec une CDialog.
    Il faut créer un projet SDI voire MDI et là on peut obtenir une ScrollView

  6. #6
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 37
    Par défaut
    En fait je pense que vous ne pourrez pas repondre a mon probleme car c'est pour un prog pour Pocket PC. L'ecran etant petit je ne peux pas afficher tout mes controles pour qu'il tienne dans mon ecran et je ne veux pas separer mes controles. je les veux tous dans ma boite de dialogue. c'est pour cela que j'ai besoin d'une scroll bar verticale pour faire defiler mon ecran.
    merci pour vos renseignements.

  7. #7
    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
    si si je vois trés bien le problème ...
    il fallait générer un programme SDI et pas boîte de dialogue...

  8. #8
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 37
    Par défaut
    En fait, jai reussi à faire un scrollbar avec ma boite de dialogue pour une appli pour pocket pc écrite avec visual studio 2005. Il faut utiliser la fonction ScrollWindowEx().
    Voici mon code :
    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
     
                 int nDelta;
    	int nMaxPos = m_rect.Height() - m_nCurHeight;
     
    	switch (nSBCode)
    	{
    	case SB_LINEDOWN:
    		if (m_nScrollPos >= nMaxPos)
    			return;
    		nDelta = min(nMaxPos/100,nMaxPos-m_nScrollPos);
    		break;
     
    	case SB_LINEUP:
    		if (m_nScrollPos <= 0)
    			return;
    		nDelta = -min(nMaxPos/100,m_nScrollPos);
    		break;
     
             case SB_PAGEDOWN:
    		if (m_nScrollPos >= nMaxPos)
    			return;
    		nDelta = min(nMaxPos/10,nMaxPos-m_nScrollPos);
    		break;
     
    	case SB_THUMBPOSITION:
    		nDelta = (int)nPos - m_nScrollPos;
    		break;
     
    	case SB_PAGEUP:
    		if (m_nScrollPos <= 0)
    			return;
    		nDelta = -min(nMaxPos/10,m_nScrollPos);
    		break;
     
             default:
    		return;
    	}
    	m_nScrollPos += nDelta;
    	SetScrollPos(SB_VERT,m_nScrollPos,TRUE);
    	ScrollWindowEx(0, -nDelta, NULL, NULL, NULL, NULL, SW_SCROLLCHILDREN);
    les variables m_nScrollPos, m_rect et m_nCurHeight sont des données menbres.Et dans le OnInitDialog() je fais GetWindowRect(m_rect) pour récupérer les coordonnées de ma boite de dialogue.

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

Discussions similaires

  1. Pb plusieurs boites de dialogues
    Par schnito dans le forum MFC
    Réponses: 10
    Dernier message: 25/02/2004, 21h44
  2. [MFC] rendre une boite de dialogue inactive
    Par Vestaproman dans le forum MFC
    Réponses: 8
    Dernier message: 22/01/2004, 14h09
  3. Affichage d'une boite de dialogue nonmodale avec MFC
    Par the.cable.guy dans le forum Windows
    Réponses: 3
    Dernier message: 04/07/2003, 17h59
  4. Réponses: 5
    Dernier message: 04/04/2003, 15h02
  5. Comment cree une boite de dialogue parcourir
    Par kenshi dans le forum MFC
    Réponses: 5
    Dernier message: 06/01/2003, 10h30

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