Bonjour,
Suite au post sur l'ajout d'un bouton dans la barre de titre: ici, je me retrouve avec un problème tout bête:
-> comment faire pour que ce bouton supplémentaire prenne le 'style XP' ?
Merci d'avance,
@ +![]()
Bonjour,
Suite au post sur l'ajout d'un bouton dans la barre de titre: ici, je me retrouve avec un problème tout bête:
-> comment faire pour que ce bouton supplémentaire prenne le 'style XP' ?
Merci d'avance,
@ +![]()
voici un lien pour transformer vos applis en style XP :
http://www.soft-gems.net/index.php?o...d=17&Itemid=33
Bonsoir,
Merci beaucoup pour ce lien, je vais installer et essayer.
Ma seule inquiétude/question est : vais je pouvoir utiliser ces fonctionnalités pour le dessin dans la zone non cliente d'une fenêtre ? ...
@+![]()
Bonsoir,
Bon, il faut utiliser d'autres fonctions que DrawFrameControl et consorts, voici des petits liens sur certaines (dans la MSDN):
DrawThemeBackground
DrawThemeEdge
une description de valeurs possibles:
Parts and States
J'ai mis les includes:
et inclut au projet la Uxtheme.lib.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 #include <Uxtheme.h> #include <Tmschema.h>
Ainsi, dans le bout de code qui me servait pour l'ajout d'un bouton, je peut modifier une fonction ainsi:
Pas loin ... mais pas encore ...
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
24
25
26
27
28
29
30
31
32
33 void __fastcall DessinBouton(int AState) { HTHEME hTheme = NULL; hTheme = OpenThemeData(VueDonnees->hDestWindow, L"Button"); HDC hdc; HWND whdc; whdc = baseForm->Handle; // // On détermine les coordonnées auxquelles on veut dessiner le //bouton : CalculTailleCB(whdc, &pRect); //GetWindowDC permet de récuperer une 'zone de travail complète' //(incluant donc la TitleBar, les Menus et Scroll-bars) //sur laquelle nous pourrons effectivement dessiner //nos éléments : hdc = GetWindowDC(whdc); // switch (AState) { case 0: DrawThemeBackground(hTheme, hdc, BP_PUSHBUTTON, PBS_NORMAL, &pRect, 0); DrawThemeEdge(hTheme, hdc, BP_PUSHBUTTON, PBS_NORMAL, &pRect, EDGE_RAISED, BF_RECT, 0); break; case 1: DrawThemeBackground(hTheme, hdc, BP_PUSHBUTTON, PBS_PRESSED, &pRect, 0); DrawThemeEdge(hTheme, hdc, BP_PUSHBUTTON, PBS_PRESSED, &pRect, EDGE_SUNKEN, BF_RECT, 0); break; } // ReleaseDC(hdc, whdc); }
En fait, il me faudrait passer "Window" en paramètre a OpenThemeData(), mais de ce fait je ne sais pas comment en rajouter un 'perso'.
@+![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager