2009-10-18 5 views
0

J'ai une application basée sur un assistant MFC (CPropertySheet, CPropertyPage) créée avec vS2008. J'essaie de donner à mon application qui est presque terminée un look plus moderne. J'ai regardé CDHTMLDIalog mais cela ressemble à beaucoup de travail et pas très bien documenté. Ensuite, j'ai pensé que je pourrais utiliser certaines fonctionnalités du Feature Pack. J'ai trouvé un fil à propos de ce link text mais j'ai ajouté le code mentionné dans le fil à divers endroits de mon application mais l'apparence ne change jamais.Apparence de l'assistant MFC

CMFCVisualManagerOffice2007 :: SetStyle (CMFCVisualManagerOffice2007 :: Office2007_Silver); CMFCVisualManager :: SetDefaultManager (RUNTIME_CLASS (CMFCVisualManagerOffice2007)); CDockingManager :: SetDockingMode (DT_SMART); RedrawWindow (NULL, NULL, RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_UPDATENOW | RDW_FRAME | RDW_ERASE);

ont également remplacé CPropertySheet avec CMFCPropertySheet & CPropertyPage avec CMFCPropertyPage

Merci ...

Répondre

2

Define 'donner mon application look plus moderne. Je suppose que vous ne parlez pas de contrôles communs de type XP ici, mais d'une disposition d'assistant différente. Voulez-vous un en-tête/bannière graphique en haut ou à gauche de votre assistant? Regardez les paramètres de configuration pour la feuille de propriétés dans m_psh.dwFlags: PSH_WIZARD97, PSH_WATERMARK, PSH_HEADER, ...

Si vous parlez d'utiliser les «skins» modernes de style Office pour votre assistant (style Feature Pack), vous êtes pas de chance. Impossible de faire cela pour les boîtes de dialogue avec le Feature Pack. Regardez dans BCG Controls - cela va coûter de l'argent mais c'est plus à jour et vous obtenez des fonctionnalités supplémentaires.

Si c'est quelque chose de complètement différent de ce que vous voulez, s'il vous plaît poster des maquettes de ce à quoi il devrait ressembler, et/ou une capture d'écran de ce qu'il ressemble maintenant et ce que vous n'aimez pas.

+0

Je pensais que je pourrais être en mesure d'obtenir un look différent pour mon application basée sur l'assistant avec le Feature Pack. Vous avez confirmé ce que je commençais à soupçonner. Je vais jeter un coup d'œil à BCG Controls. Merci... – Canacourse

0

Vous devriez avoir:

  • CWinApp remplacé par CWinAppEx dans votre fichier de programme principal;
  • Le manifeste de Windows Common Controls 6.0 mis en œuvre (soit une ressource RT_MANIFEST ou une entrée #pragma dans votre stdafx.h)
  • Le code ci-dessous au début de la méthode InitInstance() (ce code aurait été ajouté dans le nouveau projet assistant):

    // InitCommonControlsEx() is required on Windows XP if an application 
    // manifest specifies use of ComCtl32.dll version 6 or later to enable 
    // visual styles. Otherwise, any window creation will fail. 
    INITCOMMONCONTROLSEX InitCtrls; 
    InitCtrls.dwSize = sizeof(InitCtrls); 
    // Set this to include all the common control classes you want to use 
    // in your application. 
    InitCtrls.dwICC = ICC_WIN95_CLASSES; 
    InitCommonControlsEx(&InitCtrls); 
    
+0

Oui. J'ai remplacé CWinApp avec CWinAppEx. – Canacourse

+0

S'il vous plaît vérifier à nouveau ma réponse, j'ai inclus quelques autres sugestions – djeidot

+0

J'ai eu un problème de contrôle de bouton partagé qui fonctionnait correctement dans Windows 7 et Vista, mais pas dans XP. Il n'apparaît même pas dans la forme où je l'avais mis! Donc je l'ai remplacé par un Est-il prévisible que le bouton d'un menu MFC, qui est comparé avec le bouton de division, est très moche. Ma question: En ajoutant ces lignes, est-il prévisible que le bouton de division fonctionnerait? – sergiol