Scrollbar ....!! [Résolu]

Signaler
Messages postés
39
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
6 septembre 2008
-
Messages postés
39
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
6 septembre 2008
-
salut a tout le groupe :)
bon voila......j'ai cree une application MFC que ,la taillede son cadre(Dialog) depace la taille de mon ecrant, car il y en a plein de controles. quand j'ogumente la resolution d'affichage de Windwos, mon Dialog aparet completement, mais la taille des controles, plices....etc devien miniature, un ami m'apropose d'utiliser un scrollbar vertical (ascenseur), bon j'ai chercher un peux dans le net et j'ai trouver un articl (MSDN Q29.....) qui montre les etapes pour creer un scrollbar , il cite qu'il faus invoker les handlers WM_VSSCROLL et WM_SIZE , et il detail le code....bon le probleme n'ete pas que le code n'a pas marcher...au contraire....il marche mais pas completement comme je voulais,
le code necessite que la feuneitre du Dialog sois redimentionnee pour qu'il fonctionne ,or ma feuneitre et beaucoup plus longe qu'elle sois redimentionnee...... je ne sais pas si j'eclaicis le problem ou suis je bavard....
s'il vous plais, si il ya quelqu'un qui peux m'aider, j'en serais tres reconaissant
merci d'avance pour vos suggestions :)
je travail avec VC++ 6.0v

3 réponses

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
21
Ou encore plus pratique, l'utilisation d'un tabControl, avec 2 ou 3 volets tu regroupes tes controlles par catégories.
Il n'est pas bon de surcharger une vue avec beaucoup de controles d'un seul coup, cela simplifiera aussi l'organisation de ton code.
Tchao.
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
21
// Si ta vue dérive de FormView

// Tu peux définir la taille du frame

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
    if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE;


    // Fenetre non resizable, 800/600, placé au milieu de l'écran


    cs.style &= ~WS_THICKFRAME;
    cs.style &= ~WS_MAXIMIZEBOX;
 
    cs.cx = 805;
    cs.cy = 605; 
 
    cs.x  = (::GetSystemMetrics(SM_CXSCREEN) - 805)/2;
    cs.y  = (::GetSystemMetrics(SM_CYSCREEN) - 605)/2;
 
    return TRUE;
}

// Puis dans la vue

void CMyView::OnInitialUpdate()
{
    CFormView::OnInitialUpdate();
    GetParentFrame()->RecalcLayout();
    ResizeParentToFit();
}

Sinon je te conseille l'utilisation de CScrollView qui te mets les scrollBar automatiquement.
Messages postés
39
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
6 septembre 2008

dsl pour ce scilence, ;erci d'abord Mr.yan_lo_san pour votre reponse, oui je pense aussi que ;a vue est un peux surchargee, pour ce lq je vais adapter votre idee du TabControl, elle meme moin penible en code et plus souple en utilisation
bon merci encore.
:)