2017-09-22 16 views
0

J'ai une barre d'outils dans une barre d'exploration construite avec ATL/C++. Tout fonctionne très bien mais le style visuel appliqué est un peu ... daté. D'après ce que je lis qu'il a à faire avec la version 6 avant commctrl étant amené à ma question (s) sont:.Bureauband (Explorer Bar) Styles visuels

  • Suis-je sur la bonne voie avec la question avant 6 commctrl?
  • Avez-vous des ressources qui pourraient me donner un petit exemple?

J'ai déjà essayé:

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' "\ 
"version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") 

En vain, je crois que cela ne fonctionne pas en raison de ce pas être une application mais une DLL tirés par un processus (iexplorer). Si tel est le cas, il y a aussi:

//Using ComCtl32 Version 6 in an Application That Uses Extensions, Plug-ins, or a DLL That Is Brought into a Process 

Situé à: https://msdn.microsoft.com/en-us/library/windows/desktop/ms649781(v=vs.85).aspx que je vais essayer que je poste ce.

Répondre

0

Maladroitement le second bit à mon poste d'origine résolu mon problème:

Je vais ajouter le poste complet de https://msdn.microsoft.com/en-us/library/windows/desktop/ms649781(v=vs.85).aspx ci-dessous:

En utilisant la version 6 comctl32 dans une application qui utilise des extensions, plug -ins ou une DLL introduite dans un processus

Voici des exemples d'applications qui utilisent des extensions. Microsoft Management Console (MMC) Shell Windows Microsoft Visual Studio ComCtl32.dll version 6 n'est pas complètement rétrocompatible car certains des contrôles sont modifiés et de nouveaux contrôles sont ajoutés. L'utilisation de la version 6 des contrôles communs peut nécessiter des modifications de code dans votre application. Si une application utilise des extensions développées par un tiers, vous ne pouvez pas modifier l'extension si vous avez des problèmes de compatibilité . Les étapes suivantes décrivent comment vous pouvez appliquer un style visuel à votre application sans affecter une extension. Pour créer un manifeste et permettre à votre application d'utiliser des styles visuels. Inclure le fichier d'en-tête contrôles communs comme suit:

#include "commctrl.h" 

Compile votre application avec le drapeau -DISOLATION_AWARE_ENABLED ou insérer la déclaration suivante avant la #include "windows.h" déclaration .

#define ISOLATION_AWARE_ENABLED 1 

Ajouter un fichier appelé YourApp.manifest à votre arbre source qui utilise le format XML manifeste .

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly 
xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
<assemblyIdentity 
    version="1.0.0.0" 
    processorArchitecture="X86" 
    name="CompanyName.ProductName.YourApplication" 
    type="win32" /> <description>Your application description here.</description> <dependency> 
    <dependentAssembly> 
     <assemblyIdentity 
      type="win32" 
      name="Microsoft.Windows.Common-Controls" 
      version="6.0.0.0" 
      processorArchitecture="X86" 
      publicKeyToken="6595b64144ccf1df" 
      language="*" 
     /> 
    </dependentAssembly> 
    </dependency> 
    </assembly> 

Ajouter le manifeste au fichier de ressources de votre application comme suit:

ISOLATIONAWARE_MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.manifest"

Winuser.rh comprend les suivants: définit

#define RT_MANIFEST 24 
#define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2