IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Style XP sur une fenêtre et bouton 'personnalisé'


Sujet :

C++Builder

  1. #1
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut Style XP sur une fenêtre et bouton 'personnalisé'
    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,
    @ +

  2. #2
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 28
    Points
    28
    Par défaut
    voici un lien pour transformer vos applis en style XP :


    http://www.soft-gems.net/index.php?o...d=17&Itemid=33

  3. #3
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    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 ? ...

    @+

  4. #4
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    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:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #include <Uxtheme.h>
    #include <Tmschema.h>
    et inclut au projet la Uxtheme.lib.

    Ainsi, dans le bout de code qui me servait pour l'ajout d'un bouton, je peut modifier une fonction ainsi:
    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);
    }
    Pas loin ... mais pas encore ...
    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'.

    @+

Discussions similaires

  1. [WD15] Bouton de fermeture sur une fenêtre fille
    Par wd_newbie dans le forum WinDev
    Réponses: 6
    Dernier message: 18/09/2012, 22h42
  2. [PowerBuilder] Récupérer la main sur une fenêtre modale
    Par jpdar dans le forum Powerbuilder
    Réponses: 3
    Dernier message: 12/06/2006, 14h21
  3. Réponses: 4
    Dernier message: 25/07/2005, 14h24
  4. Faire défiler un texte sur une fenêtre
    Par Crisanar dans le forum Windows
    Réponses: 15
    Dernier message: 24/11/2004, 23h05
  5. Rendre le curseur invisible sur une fenêtre donnée
    Par Meuhmeuh dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/11/2002, 12h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo