PureBasic

Forums PureBasic
Nous sommes le Jeu 22/Aoû/2019 5:57

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 10 messages ] 
Auteur Message
 Sujet du message: Changer la police de messagerequester()
MessagePosté: Jeu 16/Juin/2011 10:29 
Hors ligne

Inscription: Sam 23/Fév/2008 17:58
Messages: 556
Bonjour à tous
Après quelques recherches voici ce que j’ai trouvé.
Tout d’abord et contrairement à ce que de nombreux forums disent.
Il est possible de modifier toutes les caractéristiques de la police système des messages :
Voici 2 manières manuelles de les réaliser
(ATTENTION ne PRENEZ QUE LES MESSAGES et QU’UNE POLICE PEU EXCENTRIQUE)

1) méthode manuelle sous XP SP3.
Cliquez sur Démarrer
Paramètres
Panneau de configuration
.Affichage
Apparence
Avancé
Sous élément choisissez boite de message
Choisissez la police la taille la couleur Bold (gras ) italique
OK
Appliquer

2) méthode manuelle sous XP SP3
cliquez avec bouton droit de la souris sur le fond du bureau
Choisissez propriétés et ensuite
Apparence
Avancé
Sous élément choisissez boite de message
Choisissez la police la taille la couleur Bold (gras ) italique
OK
Appliquer


Et maintenant modification par prg des caractéristiques de la police de messagerequester()
Pour l’instant je peux modifier la police et toutes ses caractéristiques hormis la couleur.
Code:
spinfo.NONCLIENTMETRICS
spinfo\cbSize = SizeOf(spinfo)
SystemParametersInfo_(#SPI_GETNONCLIENTMETRICS,0,@spinfo,0)

Debug "captionfont="+PeekS(@spinfo\lfCaptionFont\lfFaceName[0])+" "+Str(- PeekL(@spinfo\lfCaptionFont\lfHeight) - 3)
Debug "menufont="+PeekS(@spinfo\lfMenuFont\lfFaceName[0])+" "+Str(- PeekL(@spinfo\lfMenuFont\lfHeight) - 3)
Debug "messagefont="+PeekS(@spinfo\lfMessageFont\lfFaceName[0])+" "+Str(- PeekL(@spinfo\lfMessageFont\lfHeight) - 3)

MessageRequester("Essai change font", "1234567890.........."+Chr(10)+"..........1234567890")
For i=0 To 31
font$+Chr(spinfo\lfCaptionFont\lfFaceName[i])
Next
Debug font$
;*********************************************************************************************************
;  ci dessous choix  de la police des messages  et de ses  caracteristiques (taille bold italique etc ....
;*********************************************************************************************************
;   #PB_Font_Bold       : Le style de la police est en 'Gras'.
;   #PB_Font_Italic     : Le style de la police est en 'Italique'.
;   #PB_Font_StrikeOut  : Le style de la police est en 'Barré'.
;   #PB_Font_Underline  : Le style de la police est en  'soulignée'
;     "MenuFont.Height    " & CInt(-0.75 * ncm.lfMenuFont.lfHeight)
;     "MenuFont.Weight    " & ncm.lfMenuFont.lfWeight     '400 = Normal, 700 = Bold
;     "MenuFont.Italic    " & ncm.lfMenuFont.lfItalic             '0 = False, 1 = True
;     

res_font=FontRequester("Courier new", 8 ,#PB_FontRequester_Effects )
If res_font
        N_FONT$=SelectedFontName()
        n_taille=SelectedFontSize()
        Debug "style_font = "+Str(SelectedFontStyle())
        Debug n_font$+" "+Str(n_taille)
        Message$ = "Vous avez sélectionné la police suivante :"  + #LF$
        Message$ + "Nom :  " + SelectedFontName()       + #LF$
        Message$ + "Taille :  " + Str(SelectedFontSize())  + #LF$
        Message$ + "Couleur : " + Str(SelectedFontColor()) + #LF$
    If SelectedFontStyle() & #PB_Font_Bold
      Message$ + "Gras" + #LF$
      PokeL(@spinfo\lfMessageFont\lfWeight,700)
      Else
      PokeL(@spinfo\lfMessageFont\lfWeight,400)
    EndIf
    If SelectedFontStyle() & #PB_Font_StrikeOut
      Message$ + "Barré" + #LF$
      PokeB(@spinfo\lfMessageFont\lfStrikeOut,1)
      Else
      PokeB(@spinfo\lfMessageFont\lfStrikeOut,0)
    EndIf
    If SelectedFontStyle() & #PB_Font_Underline
      Message$ + "Souligné" + #LF$
      PokeB(@spinfo\lfMessageFont\lfUnderline,1)
      Else
      PokeB(@spinfo\lfMessageFont\lfUnderline,0)
    EndIf
    If SelectedFontStyle() & #PB_Font_Italic
      Message$ + "Italique" + #LF$
      PokeB(@spinfo\lfMessageFont\lfItalic,1)
      Else
      PokeB(@spinfo\lfMessageFont\lfItalic,0)
    EndIf
  Else
    MessageRequester("FontRequester","La sélection a été annulée.")
    End
EndIf
  MessageRequester("FontRequester pas encore modifiée", Message$, #PB_MessageRequester_Ok)
  l_ntaille=(-n_taille-3) ; taille à modifier pour prise en compte
   
;*********************************************************************************************************
;  ci dessous modification de la police  et de la taille système des messages comme messagebox  messagerequester etc..
;*********************************************************************************************************

PokeS(@spinfo\lfMessageFont\lfFaceName[0],N_font$)
PokeL(@spinfo\lfMessageFont\lfHeight,l_ntaille)

; PokeS(@spinfo\lfMessageFont\lfFaceName[0],PeekS(@spinfo\lfCaptionFont\lfFaceName[0]))

SystemParametersInfo_(#SPI_SETNONCLIENTMETRICS,0,@spinfo,0)

Debug "captionfont="+PeekS(@spinfo\lfCaptionFont\lfFaceName[0])+" "+Str(- PeekL(@spinfo\lfCaptionFont\lfHeight) - 3)
Debug "menufont="+PeekS(@spinfo\lfMenuFont\lfFaceName[0])+" "+Str(- PeekL(@spinfo\lfMenuFont\lfHeight) - 3)
Debug "messagefont="+PeekS(@spinfo\lfMessageFont\lfFaceName[0])+" "+Str(- PeekL(@spinfo\lfMessageFont\lfHeight) - 3)


MessageRequester("Essai change font", "1234567890.........."+Chr(10)+"..........1234567890")
MessageRequester("FontRequester modifiée", Message$, #PB_MessageRequester_Ok)

; Structure LOGFONT
;   lfHeight.l
;   lfWidth.l
;   lfEscapement.l
;   lfOrientation.l
;   lfWeight.l
;   lfItalic.b
;   lfUnderline.b
;   lfStrikeOut.b
;   lfCharSet.b
;   lfOutPrecision.b
;   lfClipPrecision.b
;   lfQuality.b
;   lfPitchAndFamily.b
;   lfFaceName.c[32]
; EndStructure

; Structure NONCLIENTMETRICS
;   cbSize.l
;   iBorderWidth.l
;   iScrollWidth.l
;   iScrollHeight.l
;   iCaptionWidth.l
;   iCaptionHeight.l
;   lfCaptionFont.LOGFONT
;   iSMCaptionWidth.l
;   iSMCaptionHeight.l
;   lfSMCaptionFont.LOGFONT
;   iMenuWidth.l
;   iMenuHeight.l
;   lfMenuFont.LOGFONT
;   lfStatusFont.LOGFONT
;   lfMessageFont.LOGFONT
; EndStructure






Si quelqu’un sait comment modifier la couleur par PRG je suis preneur.

_________________
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Changer la police de messagerequester()
MessagePosté: Jeu 16/Juin/2011 10:51 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6644
Localisation: Isere
Super cool ton truc
Bon maintenant j'ai des MsgBox tout "zarebi", mais c'est trop cool :lol:

Je suppose que ça reviendra au prochain boot, j'aurais p'tete du noter la police par defaut :roll:

Merci PAPIPP 8)

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Changer la police de messagerequester()
MessagePosté: Jeu 16/Juin/2011 10:56 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8735
Merci pour ce code ! ça va faire du bien de modifier un peu ce triste MessageRequester !

par contre, sous 7x64 cela change "définitivement" la font, même aprés avoir fermé le prog, en en créant un autre avec un simple messagerequester(), la font demeure celle qu'on a modifiée. C'est gênant ^^
il faudrait décharger la font lorsque l'on quitte le programme.

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
RESIZER GOLD : Mon logiciel de redimensionnement par lot 100% PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Changer la police de messagerequester()
MessagePosté: Jeu 16/Juin/2011 11:06 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6849
Localisation: IDF (Yvelines)
Ar-S a écrit:
Merci pour ce code ! ça va faire du bien de modifier un peu ce triste MessageRequester !


Tu peux aussi changer le texte des boutons
http://forums.purebasic.com/english/viewtopic.php?f=12&t=37171&start=0

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Changer la police de messagerequester()
MessagePosté: Jeu 16/Juin/2011 11:36 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8735
Merci, je change les boutons via setgadgetfont. Par contre je vais tout de même récupérer ces procédures de hook pour modifier les NO YES OK etc..

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
RESIZER GOLD : Mon logiciel de redimensionnement par lot 100% PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Changer la police de messagerequester()
MessagePosté: Ven 17/Juin/2011 10:52 
Hors ligne

Inscription: Sam 23/Fév/2008 17:58
Messages: 556
Bonjour à tous
Après quelques recherches voici ce que j’ai trouvé pour modifier la couleur du texte sous windows
J'ai listé toutes les options que l'on peut modifier.
(ATTENTION le prg ne corrige que la couleur du texte (en rouge)
si vous désirez modifier d'autres éléments vous le faite sous votre responsabilité
notez les éléments avant de lancer ce prg )


Code:
Structure Col
  Val.l
  nom.s{80}
EndStructure
Dim tab_c.col(40)
i=0
tab_c(i)\val= #COLOR_3DDKSHADOW
tab_c(i)\nom="Dark shadow For three-dimensional display elements"
i+1:tab_c(i)\val= #COLOR_3DFACE
i+1:tab_c(i)\val= #COLOR_BTNFACE
tab_c(i)\nom="Face color For three-dimensional display elements"
i+1:tab_c(i)\val= #COLOR_3DHILIGHT
i+1:tab_c(i)\val=#COLOR_3DHIGHLIGHT
i+1:tab_c(i)\val=#COLOR_BTNHILIGHT
i+1:tab_c(i)\val=#COLOR_BTNHIGHLIGHT
tab_c(i)\nom="Highlight color For three-dimensional display elements (For edges facing the light source.)"
i+1:tab_c(i)\val=#COLOR_3DLIGHT
tab_c(i)\nom="Light color For three-dimensional display elements (For edges facing the light source.)"
i+1:tab_c(i)\val=#COLOR_3DSHADOW
i+1:tab_c(i)\val=#COLOR_BTNSHADOW
tab_c(i)\nom="Shadow color For three-dimensional display elements (For edges facing away from the light source)"
i+1:tab_c(i)\val=#COLOR_ACTIVEBORDER
tab_c(i)\nom="Active window border"
i+1:tab_c(i)\val=#COLOR_ACTIVECAPTION
tab_c(i)\nom="Active window caption"
i+1:tab_c(i)\val=#COLOR_APPWORKSPACE
tab_c(i)\nom="Background color of multiple document Interface (MDI) applications"
i+1:tab_c(i)\val=#COLOR_BACKGROUND
i+1:tab_c(i)\val=#COLOR_DESKTOP
tab_c(i)\nom="Desktop"
i+1:tab_c(i)\val=#COLOR_BTNTEXT
tab_c(i)\nom="Text on PUSH buttons"
i+1:tab_c(i)\val=#COLOR_CAPTIONTEXT
tab_c(i)\nom="Text IN caption, size box, And scroll bar arrow box"
i+1:tab_c(i)\val=#COLOR_GRAYTEXT
tab_c(i)\nom="Grayed (disabled) text. This color is set To 0 "; If the current display driver does Not support a solid gray color.
i+1:tab_c(i)\val=#COLOR_HIGHLIGHT
tab_c(i)\nom="Item(s) selected IN a control"
i+1:tab_c(i)\val=#COLOR_HIGHLIGHTTEXT
tab_c(i)\nom="Text of item(s) selected IN a control"
i+1:tab_c(i)\val=#COLOR_INACTIVEBORDER
tab_c(i)\nom="Inactive window border"
i+1:tab_c(i)\val=#COLOR_INACTIVECAPTION
tab_c(i)\nom="Inactive window caption"
i+1:tab_c(i)\val=#COLOR_INACTIVECAPTIONTEXT
tab_c(i)\nom="Color of text IN an inactive caption"
i+1:tab_c(i)\val=#COLOR_INFOBK
tab_c(i)\nom="Background color For tooltip controls"
i+1:tab_c(i)\val=#COLOR_INFOTEXT
tab_c(i)\nom="Text color For tooltip controls"
i+1:tab_c(i)\val=#COLOR_MENU
tab_c(i)\nom="Menu background"
i+1:tab_c(i)\val=#COLOR_MENUTEXT
tab_c(i)\nom="Text IN menus"
i+1:tab_c(i)\val=#COLOR_SCROLLBAR
tab_c(i)\nom="Scroll bar gray area"
i+1:tab_c(i)\val=#COLOR_WINDOW
tab_c(i)\nom="Window background"
i+1:tab_c(i)\val=#COLOR_WINDOWFRAME
tab_c(i)\nom="Window frame"
i+1:tab_c(i)\val=#COLOR_WINDOWTEXT
tab_c(i)\nom="Text IN windows"
i_max=i:Debug i
For i=0 To i_max
  If tab_c(i)\nom<>""
    mess$=tab_c(i)\nom
  EndIf
  col_e.l=GetSysColor_(tab_c(i)\Val)
  Debug " R="+Str(Red(col_e))+" G="+Str(Green(col_e))+" B="+Str(Blue(col_e))+"=>"+mess$
Next
type.l=#COLOR_WINDOWTEXT
coln.l=RGB(255,0,0) ; couleur rouge
res_s=SetSysColors_(1, @type, @coln)
If res_s=0
err.l=GetLastError_()
Debug str(res_s)+" "+str(err) ; voir liste des erreurs http://msdn.microsoft.com/en-us/library/ms681381%28v=vs.85%29.aspx
EndIf

MessageRequester("Essai change font", "1234567890.........."+Chr(10)+"..........1234567890")




Amusez vous bien

_________________
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.


Dernière édition par PAPIPP le Ven 17/Juin/2011 10:59, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Changer la police de messagerequester()
MessagePosté: Ven 17/Juin/2011 10:54 
Hors ligne

Inscription: Sam 23/Fév/2008 17:58
Messages: 556
!!

_________________
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Changer la police de messagerequester()
MessagePosté: Sam 17/Sep/2011 11:00 
Hors ligne

Inscription: Dim 23/Déc/2007 18:10
Messages: 471
Ça m'a bien fait flipper ton histoire.
J'viens juste de changer de slip.

Quand je pense que je viens de finir mon prog : MessageRequesterPerso, justement pour ce problème de police.
Enfin pour ma part, j'utilise des images, des sons pour que ça fonctionne sur windows quel que soit les paramétrages.
Sous Linux j'ai dû supprimer les sons parce que ça déconnait et le rendu était horrible.

Ça fait 1 mois que je dois mettre ça en ligne et à chaque fois je pars sur autre chose.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Changer la police de messagerequester()
MessagePosté: Sam 17/Sep/2011 23:59 
Hors ligne

Inscription: Lun 26/Avr/2004 0:40
Messages: 14535
excellent code ! :) merci .


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Changer la police de messagerequester()
MessagePosté: Dim 18/Sep/2011 3:16 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6644
Localisation: Isere
Citation:
Amusez vous bien
Coolll !!! avec ça j'ai vu la vie en rose pendant un instant :mrgreen:
Merci 8)

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 10 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye