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

Windows Discussion :

[C][API Windows] changt de couleur


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 31
    Par défaut [C][API Windows] changt de couleur
    Bonjour

    Je voudrais savoir comment changer, via une boite de dialogue commune, la couleur de dessins et de textes créés avec WM_PAINT dans une fenêtre.

    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 72
    Par défaut
    Salut,

    Si j'ai bien compris ce que tu veux, tu dois mémoriser une variable de type COLORREF puis l'utiliser lorsque tu traites le message WM_PAINT avec des fonctions comme SetTextColor(), SetBkColor(), SetDCPenColor(), etc.

  3. #3
    Membre averti
    Inscrit en
    Août 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 31
    Par défaut
    Salut

    Oui, c'est bien ça. Mais j'ai en plus un souci avec SetDCPenColor(): j'ai à la compilation "[Link error] undefined reference to 'SetDCPenColor'".

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 72
    Par défaut
    SetDCPenColor() est une API disponible à partir de Windows 2000.
    Assures-toi que tu lies bien la librairie GDI32.LIB et que tu as ajouté #define _WIN32_WINNT 0x0500 avant l'inclusion de <windows.h>.

  5. #5
    Membre averti
    Inscrit en
    Août 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 31
    Par défaut
    salut

    En rajoutant #define _WIN32_WINNT 0x0500, SetDCPenColor() ne me pose plus de problèmes. Par contre, la couleur n'est changé que si la fenêtre est redessinée. J'ai un autre problème, cette fois-ci pour changer la fonte d'un texte, ça ne marche pas du tout.

  6. #6
    Membre averti
    Inscrit en
    Août 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 31
    Par défaut
    salut

    J'ai réussi à tégler le problème du changement de couleur. Il suffisait de rajouter la ligne InvalidateRect(hwnd, NULL, TRUE). Par contre, pour changer la fonte, j'ai toujours des soucis.

    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
    else if (LOWORD(wParam) == IDG_FONT)
                    {
                        CHOOSEFONT cg;
                        ZeroMemory(&cg, sizeof(CHOOSEFONT));
                        cg.lStructSize = sizeof (CHOOSEFONT);
                        cg.hwndOwner = hGraph;
                        cg.lpLogFont = &lfg;
                        cg.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT;
    
                        if (ChooseFont(&cg))
                        {
                                    DeleteObject(NewFont);
                                    NewFont = CreateFontIndirect(&lfg);
                                    SendMessage(hwnd,WM_PAINT,(UINT)NewFont,TRUE);
                                    InvalidateRect(hwnd,NULL,TRUE);
                                    
                        }
                    }
    visiblement, avec InvalidateRect(), ça ne marche pas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 29
    Dernier message: 14/01/2013, 10h40
  2. tutoriel : La programmation de l'API Windows en C++ par Bob
    Par Aurelien.Regat-Barrel dans le forum Windows
    Réponses: 19
    Dernier message: 21/06/2008, 14h34
  3. Modifier la couleur d'un STATIC avec les API windows
    Par Mirsa dans le forum Visual C++
    Réponses: 31
    Dernier message: 27/11/2006, 11h18
  4. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 15h28
  5. Utilisation de Pointeurs dans API windows
    Par Drooxy dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 13/03/2003, 22h39

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