Page 1 sur 2
Fenêtre Window
Publié : ven. 30/avr./2010 14:04
par pat
Bonjour à tous,
Je suis sous Vista et j'ai remarqué que le programme Pense-bête fourni avec le système n'avait pas le même type de fenêtre que celui qu'on peut programmer sur PB (à part la couleur jaune, la fenêtre a des coins arrondis et n'a pas la même allure).
Comment peut-on faire pour programmer sur PB ce type de fenêtre ?
Re: Fenêtre Window
Publié : ven. 30/avr./2010 15:42
par Backup
....................
Re: Fenêtre Window
Publié : mer. 05/mai/2010 11:02
par pat
Merci Dobro pour ton programme.
Heureusement qu'il y a les API.
Il ne me reste plus qu'à regarder ce programme de plus près et de bien l'étudier.
Re: Fenêtre Window
Publié : mer. 05/mai/2010 14:12
par Le Soldat Inconnu
Salut Pat, tu peux aussi regarder ma librairie SkinWindow, c'est plus cela qui est utilisé sous Vista

(et la, pas d'api)
http://www.purebasic.fr/french/viewtopi ... =3&t=10193
Re: Fenêtre Window
Publié : mer. 05/mai/2010 17:29
par Backup
@Soldat : t'as fait une doc digne de ce nom ?
parce que j'aime bien les docs bien documentés

sinon .. ben je zape , et vu le boulot que t'as fait ce serai con ; surtout si les gens sont comme moi , qu'il ne veulent pas se creuser la tete a comprendre comment ça marche
j'veux dire , la doc c'est un mal nécessaire et indispensable , pour une librairie !
je zape deja plein de lib parceque la doc est en anglais ... alors t'imagine.. je supose ne pas etre seul dans ce cas ....
Re: Fenêtre Window
Publié : mer. 05/mai/2010 23:28
par Ar-S
La doc est pour le moment plus une appellation des différentes commandes existantes, ce qui est un très bon début. Il y a un peu de codes pour certaines fonctions. Aucun doute qu' LSI la complète (hein hein ?).
Un exemple de code pour chaque fonction aide vraiment à comprendre plus facilement comment ça tourne.
Re: Fenêtre Window
Publié : jeu. 06/mai/2010 8:20
par Le Soldat Inconnu
C'est prévu comme ça

en français et en anglais
Re: Fenêtre Window
Publié : jeu. 06/mai/2010 8:40
par Backup
tip-top alors !

Re: Fenêtre Window
Publié : jeu. 06/mai/2010 11:08
par Ar-S
Re: Fenêtre Window
Publié : jeu. 06/mai/2010 14:04
par pat
Bonjour à tous,
Le Soldat Inconnu étant l'auteur du programme que m'a fourni Dobro, je vous remercie tous les deux.
J'ai testé ce programme et il faut se dire qu'il gère la fenêtre dans son intégralité, c'est-à-dire qu'on produit une fenêtre elliptique, ronde, etc. (voir les API CreateRoundRect_(6 paramètres), etc.), rien à voir avec la fenêtre du pense-bête.
Le Soldat Inconnu a créé une librairie pour les fenêtres (merci à lui) mais le pense-bête a un type de fenêtre très particulier (les boutons sont plus gros, le bouton de fermeture est rouge, il n'y a pas de trame bleu pour la barre de menu, la barre de menu est plus grande, la couleur de la fenêtre est jaune, etc.).
C'est clair, il y a une lib interne à Windows qui gère ce type de fenêtre et je souhaiterais savoir comment faire pour y accéder et programmer ce type de fenêtre. Et j'ai acheté un logiciel qui utilise ce type de fenêtre et qui a des boutons dans la barre de menu. Quelque chose que l'on ne possède pas sur nos fenêtres Windows conventionnelles.
Moi je suis un débutant sur PB et je me considère comme pas trop doué par la programmation, disons que je me débrouille mais je pense qu'il doit avoir un moyen d'accéder à ce type de fenêtre. Qu'en pensez-vous ?

Re: Fenêtre Window
Publié : jeu. 06/mai/2010 14:36
par Ar-S
De petites captures d'ecran des fenêtres dont tu parles seraient bien pratique pour comprendre ce que tu veux dire Pat.
Re: Fenêtre Window
Publié : jeu. 06/mai/2010 18:00
par Backup
Ar-S a écrit :De petites captures d'ecran des fenêtres dont tu parles seraient bien pratique pour comprendre ce que tu veux dire Pat.
+1
j'ai répondu en aveugle (je suis sur XP/ubuntu)
le mieux c'est quand meme de montrer clairement ce dont on parle ...
Re: Fenêtre Window
Publié : ven. 07/mai/2010 13:15
par pat
Merci Ar-S et Dobro pour vos réponses.
Je ne possède pas Internet chez moi et je vais dans un endroit public pour aller sur Internet et cet Internet est bridé (pas de possibilité de recevoir ni de transmettre quoi que ce soit). Je ne peux que consulter.
Il faudra attendre un bon moment avant que je puisse transmettre quoi que ce soit.
Mais vous avez certainement, comme moi, le petit programme Pense-bête qu'a fourni Windows.
Comparez une fenêtre produit par PB (la fenêtre standard) et celle du Pense-bête.
Pourquoi une telle différence ?
La fenêtre PB (standard) a des coins carrés, celle du Pense-bête est toute jaune avec les coins supérieurs gauche et droit arrondi (ceux du bas sont carrés). Les boutons sont plus gros et différents et le bouton de fermeture est rouge (contrairement à ceux de PB qui ont la même couleur). Il n'y a pas de trame sur la barre de titre, etc.
Mais si vous avez XP peut-être que vous ne verrez rien car la fenêtre standard XP semble ne pas être la même que sur Vista.
Un mystère pour moi cette différence.
Merci à vous tous pour vos réflexions à ce sujet.
Re: Fenêtre Window
Publié : ven. 07/mai/2010 13:36
par Ar-S
pat a écrit :Merci Ar-S et Dobro pour vos réponses.
Je ne possède pas Internet chez moi et je vais dans un endroit public pour aller sur Internet et cet Internet est bridé (pas de possibilité de recevoir ni de transmettre quoi que ce soit). Je ne peux que consulter.
Il faudra attendre un bon moment avant que je puisse transmettre quoi que ce soit.
Mais vous avez certainement, comme moi, le petit programme Pense-bête qu'a fourni Windows.
Comparez une fenêtre produit par PB (la fenêtre standard) et celle du Pense-bête.
Pourquoi une telle différence ?
La fenêtre PB (standard) a des coins carrés, celle du Pense-bête est toute jaune avec les coins supérieurs gauche et droit arrondi (ceux du bas sont carrés). Les boutons sont plus gros et différents et le bouton de fermeture est rouge (contrairement à ceux de PB qui ont la même couleur). Il n'y a pas de trame sur la barre de titre, etc.
Mais si vous avez XP peut-être que vous ne verrez rien car la fenêtre standard XP semble ne pas être la même que sur Vista.
Un mystère pour moi cette différence.
Merci à vous tous pour vos réflexions à ce sujet.
Windows à un outil pense bête ??

ou ?
Si tu veux une fenêtre avec la forme que tu veux, je pense tout de même que la Lib SkinWindow du soldat serait parfaite pour tes besoin.
Voir exemple ci dessous
Re: Fenêtre Window
Publié : ven. 07/mai/2010 14:32
par Ar-S
un exemple vaut mieux qu'un long discours.
Prends toi 1/4 d'heure dans un cyber ou chez un ami pour récupérer le pack et la lib d'LSI, ça serait pas mal.
Pack Code + images + exe pour tester le rendu :
http://arsworld.free.fr/pb/postit.zip
Voilà le code seul histoire de voir à quoi ça ressemblerait
Code : Tout sélectionner
; Post it Par Ar-S / LDV MULTIMEDIA
; Compilé en PB 4.40
; Utilisant la lib Skin de LSI
UsePNGImageDecoder()
;Les zones de couleurs de i.png
#C_FERMER=$00FF2A ; Le bouton fermer sera représenté par la zone verte
;fond
#C_Fond =$FFFFFF ; ce qui permet de déplacer la fenêtre lorsqu"on maintient le bouton de la souris => zone blanche
; On charge les images
img_Normal=LoadImage(10,"n.png") ; image normal
img_Disable=LoadImage(11,"d.png") ; image lorsque la fenêtre n'a pas le focus
img_Hot=LoadImage(12,"h.png") ; Au survol
img_Select=LoadImage(13,"s.png") ; item de selectionné
img_Item=LoadImage(14,"i.png") ; la plus importante ! l'image comprenant les zones de couleurs définissant les bouton et le reste.
If CreateSkinWindow(0, #PB_Any, #PB_Any, "Post It", #PB_Window_ScreenCentered|#PB_Window_Invisible, 0, 10, 12, 13, 0, 11, 14, 0, 0, 0)
StickyWindow(0,1)
SkinItemMoveWindow(#C_Fond, 1)
HideSkinWindow(0, 0)
Repeat
event = WaitSkinWindowEvent()
; Si on a le focus sur la fenêtre, on affiche l'écran dans l'état actif
If GetActiveSkinWindow() = 0
DisableSkinWindow(0,0)
Else
DisableSkinWindow(0,1)
EndIf
Select EventSkinWindow() ; Fenêtre skinnée qui a reçu un évènement
Case 0 ; Fenêtre principale
Select EventSkinItem() ; Item appuyé
Case #C_FERMER
MessageRequester("FERMER","clic !")
End
EndSelect
EndSelect
Until event = #PB_Event_CloseWindow
Else
MessageRequester(" ","erreur")
End
EndIf