1 votes

Redimensionnement dynamique de CMFCPropertySheet avec le style PropSheetLook_OneNoteTabs

J'essaie de redimensionner dynamiquement une CMFCPropertySheet pour ajouter un contrôle personnalisé en bas de chaque page. Comme toutes les pages de propriété ne sont pas de la même hauteur, je dispose d'un mécanisme pour augmenter la taille si nécessaire. Pour cela, j'ai surchargé la méthode OnActivatePage et en utilisant SetWindowPos, je peux redimensionner la feuille, d'abord, puis le contrôle de l'onglet, puis la page et enfin je peux déplacer les boutons OK/Annulation/Aide. Cela fonctionne bien avec les styles PropSheetLook_OutlookBar et PropSheetLook_Tabs mais pas avec le style PropSheetLook_OneNoteTabs. La page (ou l'onglet) n'est pas correctement redimensionnée (la couleur gris clair de la page ne remplit pas la feuille.

Style OneNote OneNote

Style Outlook Outlook

Une idée ? Un bug du MFC Feature Pack ?

0voto

Greg Prosch Points 28

J'ai trouvé le problème. Il faut obtenir une référence aux différents contrôles d'onglets que l'on utilise. OneNote utilise via GetTab() et le redimensionner en conséquence.

0voto

namespace sid Points 174

Il suffit de suivre les instructions comme indiqué dans aquí . Bien que les instructions soient destinées à CPropertySheet ils travaillent pour le Feuille de propriétés CMFC également.

Certaines parties du code étant obsolètes, vous devrez apporter les modifications suivantes.

  1. Sauter le XmnPropSheetCallback y DoModal les mises en œuvre sont complètement
  2. Sur OnInitDialog il suffit de faire un appel à CPropertySheet::OnInitDialog(); et ensuite appeler OnSize au lieu de faire tout ce qui est présenté dans ce code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X