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 :

[API Windows]Affichage en Gras


Sujet :

Windows

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 134
    Points : 66
    Points
    66
    Par défaut [API Windows]Affichage en Gras
    Bonjour,

    Qqun sait il comment faire pour que quand je créé un contrôle (createwindow)ou que j'affiche un texte sur une fenêtre ,la policene soit pas en GRAS mais en normale ?Car chez moi c'est en gras par défaut ...

    Merci

    Zazeglu

  2. #2
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    regarde du coté de CreateFont avec la msdn

  3. #3
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 683
    Points
    10 683
    Billets dans le blog
    3
    Par défaut
    Elle est pas en gras, c'est une police différente c'est tout.
    Tu peux récupérer la police habituelle avec GetStockObject et l'appliquer à tes composants via un WM_SETFONT.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 134
    Points : 66
    Points
    66
    Par défaut
    D'accord ; mais je fait comment pour l'appliquer au composant ?

    Merci

    Zazeglu

  5. #5
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 683
    Points
    10 683
    Billets dans le blog
    3
    Par défaut
    SendMessage( hComposant, WM_SETFONT, ...
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Windows/WindowReference/WindowMessages/WM_SETFONT.asp

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 134
    Points : 66
    Points
    66
    Par défaut
    Comme ça cela ne semble pas fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    HGDIOBJ font;
    
    ...
    
    case WM_SETFONT:
                    font = GetStockObject(ANSI_FIXED_FONT);
                    SendMessage(txtConsole,WM_SETFONT,(WPARAM)font,0);
    
                    break;
    Merci

    zazeglu

  7. #7
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 946
    Points : 59 539
    Points
    59 539
    Billets dans le blog
    2
    Par défaut
    Attention que le champ LPARAM du message doit être construit avec la macro MAKELONG(True,0) pour que le contrôle ou la fenêtre se redessine. Donc, si tu passes la valeur 0, l'affichage n'est pas mis à jour.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SendMessage(txtConsole,WM_SETFONT,font,MAKELONG(True,0));

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 134
    Points : 66
    Points
    66
    Par défaut
    Ah bon ; mais malheureusement cela ne change rien
    Enfin j'ai essayé ça en C ,donc je suppose que True peut être remplacé par la valeur 1.

    merci

    Zazeglu

  9. #9
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 946
    Points : 59 539
    Points
    59 539
    Billets dans le blog
    2
    Par défaut
    Le meilleur moment pour changer la fonte du contrôle (donc, envoyer un message WM_SETFONT) est la réception d'un message WM_INITDIALOG.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 134
    Points : 66
    Points
    66
    Par défaut
    Je m'excuse encore d'être si embêtant ,mais ça ne vas tjrs pas

    C'est peut être une erreur dans GetStockObject() ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    font = GetStockObject(ANSI_FIXED_FONT);
    Cela renvoie un type HGDIOBJ alors que je le caste en WPARAM dans la fonction SendMessage.

    Merci

    Zazeglu

  11. #11
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 946
    Points : 59 539
    Points
    59 539
    Billets dans le blog
    2
    Par défaut
    Normalement, le problème ne vient pas de là :

    - Si tu compiles en 16 bits, le handle renvoyé par GetStockObject est codé sur 16 bits et le champ WPARAM aussi;
    - Si tu compiles en 32 bits, le handle est codé sur 32 bits mais le champ WPARAM du message est lui aussi 32 bits.

    Par contre, je me demande s'il ne faut pas attribuer le style DS_SETFONT au dialogue pour que les messages WM_SETFONT aient un effet.
    Désolé, mais j'ai très peu de doc là-dessus. Vois toujours du côté de MSDN :
    http://msdn.microsoft.com/library/de...WM_SETFONT.asp

  12. #12
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 683
    Points
    10 683
    Billets dans le blog
    3
    Par défaut
    Ce code ne doit pas être placé dans WM_SETFONT mais juste après la création du controle txtConsole (handle valide biensûr...)
    Dans case WM_SETFONT:, ton code ne sera appelé que si tu reçois WM_SETFONT, ce qui se produit rarement.
    Donne le code de création de ce controle suivi du SendMessage( WM_SETFONT, ...)

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 134
    Points : 66
    Points
    66
    Par défaut
    Donne le code de création de ce controle suivi du SendMessage( WM_SETFONT, ...)
    Oui c'était bien ça qui n'allait pas ! J'ai déplacé le code juste en dessous du CreateWindow() et tout va bien !

    Merci beaucoup à vous 2 !

    Zazeglu[/code]

+ 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. (API Windows) Problème d'affichage de boutons
    Par pioupiou74 dans le forum Windows
    Réponses: 4
    Dernier message: 29/06/2007, 14h52
  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. Affichage repetes fenetre API windows
    Par crochepatte dans le forum Windows
    Réponses: 2
    Dernier message: 14/03/2006, 16h32

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