Bonjour,
Je suis novice en MFC et j'ai une petite application qui est composée d'un CSplitterWnd de 2 parties :
à gauche un CTreeView et à droite un CFormView.
Dans le CFormView il y a entre autre 2 CListCtrl avec CButton (cadre autour des listes).
Je voudrais pouvoir redimensionner ma fenêtre si une des liste est cachée
Pour redimensionner les différentes parties j'utilise les méthodes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 m_ListCtrlElement.ShowWindow(SW_HIDE).
sur CListCtrl de ma liste à cacher, sur le cadre qui l'entour, et sur la CFormView.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SetWindowPos(NULL,0,0,new_coor_width,new_coor_height,SWP_NOMOVE | SWP_NOZORDER);
Je fais après un
dans ma CFormView après les SetWindowsPos.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 GetParentFrame()->RecalcLayout(); ResizeParentToFit();
Ma fenêtre est bien retaillée, mais un scroll apparait (comme si redimensionnement manuel).
J'ai essayé le ShowScrollBar(SB_VERT,FALSE) pour la CFormView et MainFrame, pas de succès.
Comment redimensionner la fenêtre comme si celle-ci n'avait qu'une CListCtrl d'origine (pas de scroll bar qui apparaît) ?
Merci pour votre aide,
Xavier.
exemple code :
pense à utiliser la balise de code ,Merci Farscape
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 CRect RectCadreRigthView; //CFormView GetClientRect(RectCadreRigthView); CRect RectCadreList; //CListCtrl m_ListCtrlElement.GetClientRect(RectCadreList); CRect RectCadre; //CButton cadre autour de la CListCtrl m_StaticCadreRes.GetClientRect(RectCadre); m_ListCtrlElement.ShowWindow(SW_HIDE); m_ListCtrlElement.SetWindowPos(NULL,0,0,0,0,SWP_NOMOVE | SWP_NOZORDER); m_StaticCadreRes.SetWindowPos(NULL,0,0,RectCadre.Width(),RectCadre.Height()-RectCadreList.Height(),SWP_NOMOVE | SWP_NOZORDER); SetWindowPos(NULL,0,0,RectCadreRigthView.Width(),RectCadreRigthView.Height()-RectCadreList.Height(),SWP_NOMOVE | SWP_NOZORDER); GetParentFrame()->SetWindowPos(NULL,0,0,rectFrame.Width(),rectFrame.Height()-RectCadreList.Height(),SWP_NOMOVE | SWP_NOZORDER); ShowScrollBar(SB_VERT,FALSE); GetParentFrame()->ShowScrollBar(SB_VERT,FALSE); GetParentFrame()->RecalcLayout(); ResizeParentToFit();
Partager