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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 m_ListCtrlElement.ShowWindow(SW_HIDE).
Pour redimensionner les différentes parties j'utilise les méthodes :
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);
sur CListCtrl de ma liste à cacher, sur le cadre qui l'entour, et sur la CFormView.

Je fais après un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
dans ma CFormView après les SetWindowsPos.

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 :
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();
pense à utiliser la balise de code ,Merci Farscape