2010-10-31 23 views
2

Je souhaite que ma boîte de dialogue (ressource) dans une application Win32/C ait un aspect/style "moderne", en particulier ses listes déroulantes. Par "moderne", je veux dire qu'une liste déroulante de type "liste déroulante" ressemble à un bouton solide, avec juste une petite icône "flèche" sur le côté, par opposition à l'apparence "ancienne": boîte d'édition plate avec un séparé bouton fléché. Dans l'éditeur de dialogue VS, les zones de liste déroulante sont "modernes". Quand je lance l'application, ils ont l'air "vieux". Comment forcer le style "moderne" sur le dialogue? Voilà ce que j'ai essayé, en vain:Boîte de dialogue win32/C: style "moderne" pour une zone de liste déroulante

#include "commctrl.h" 
#include "Uxtheme.h" 
setDia = CreateDialog(NULL, MAKEINTRESOURCE(IDD_DIA_SET), win, DialogProc); 
SetWindowTheme(setDia, L"Explorer", NULL); 

j'ai écrit quelques Win32/C++ Les applications et les boîtes de dialogue (aussi des ressources) à obtenir le look « moderne » de la boîte, sans que je fais. Est-ce C vs C++ qui fait la différence?

Répondre

3

Vous devrez probablement spécifier la version correcte de comctl32.dll via un manifeste, en particulier en sélectionnant v. 6 (par exemple, 6.0.2900.5512). Voir l'article MSDN suivant pour plus d'informations: Enabling Visual Styles

+0

Cool, merci. On dirait que je n'ai même pas besoin d'un manifeste: l'ajout de la seule ligne "#pragma comment" de cet article MSDN a résolu le problème. – MrSparkly