Page 1 sur 2
Rafraichissement de fenêtre (fait soif)
Publié : mar. 09/mars/2004 8:51
par Le Soldat Inconnu
Salut,
un gros soucis avec ce code :
Code : Tout sélectionner
Delay(1000)
WindowE = GetForegroundWindow_()
OpenWindow(0, 200, 200, 500, 500, #PB_Window_SystemMenu, "Options")
SetWindowLong_(WindowE, #GWL_STYLE, GetWindowLong_(WindowE, #GWL_STYLE) | #WS_CHILD)
SetParent_(WindowE, WindowID())
; MoveWindow_(WindowE, 0, 0, 400, 400, 1)
; Aire.rect
; Aire\Top = 0
; Aire\Bottom = 1000
; Aire\Left = 0
; Aire\Right = 1000
; RedrawWindow_(WindowID(), Aire, WindowID(), #RDW_UPDATENOW | #RDW_ALLCHILDREN)
Repeat
Event = WaitWindowEvent()
Until Event = #WM_CLOSE
SetWindowLong_(WindowE, #GWL_STYLE, GetWindowLong_(WindowE, #GWL_STYLE) ! #WS_CHILD)
SetParent_(WindowE, 0)
il permet de rendre un programme enfant d'un autre, je vous laisse regarder. (aperçu en mettant l'éditeur dans une autre fenêtre)
le prob, c'est que j'ai plus de rafraichissement de la fenêtre mise en Child et que j'arrive pas à le résoudre. Au secours. ça fait une semaine que je cherche à faire ceci et quand je trouve, ça plante

Publié : mar. 09/mars/2004 12:12
par CORBASE
Je voudrais bien t'aider, mais je n'en ai pas la moindre idée ..
Publié : mar. 09/mars/2004 18:35
par Oliv
Donc continuons à rimer, ça ne sert à rien de poster..........
Pourquoi le delay(1000) ?
Publié : mar. 09/mars/2004 18:37
par Le Soldat Inconnu
pour pouvoir changer la fenêtre au lancement.
tu cliques vite sur l'explorateur et tu l'explorateur dans la fenêtre au lieu de l'éditeur de pb
Publié : mar. 09/mars/2004 19:06
par Anonyme2
J'ai pas trop de solution.
Pour rafraichir une fenêtre il faut répondre à des messages dans la boucle d'événements et PureBasic le fait pour nous pour les fenêtres et gadgets qu'il connait (message du type WM_REPAINT)
Une question :
WindowE = GetForegroundWindow_() est une fenêtre créée par ton application ?
Si oui, il manque un peu de code pour mieux comprendre ce qu'il se passe.
Publié : mer. 10/mars/2004 8:57
par Le Soldat Inconnu
bon je commente mon bazar :
Code : Tout sélectionner
Delay(1000)
WindowE = GetForegroundWindow_() ; récupère le handle de la fenêtre au premier plan (moi, je souhaite le faire avec l'explorateur windows)
OpenWindow(0, 200, 200, 500, 500, #PB_Window_SystemMenu, "Options")
SetWindowLong_(WindowE, #GWL_STYLE, GetWindowLong_(WindowE, #GWL_STYLE) | #WS_CHILD) ; dis à la fenêtre qui était au premier plan de passer en mode child
SetParent_(WindowE, WindowID()) ; je lui donne un parent qui est la fenêtre que j'ai crée
MoveWindow_(WindowE, 0, 0, 400, 400, 1) ; je déplace et redimmensionne la fen child
; Aire.rect
; Aire\Top = 0
; Aire\Bottom = 1000
; Aire\Left = 0
; Aire\Right = 1000
; RedrawWindow_(WindowID(), Aire, WindowID(), #RDW_UPDATENOW | #RDW_ALLCHILDREN)
Repeat
Event = WaitWindowEvent()
Until Event = #WM_CLOSE
SetWindowLong_(WindowE, #GWL_STYLE, GetWindowLong_(WindowE, #GWL_STYLE) ! #WS_CHILD) ; je dis à la fenêtre de ne plus être child
SetParent_(WindowE, 0) ; je retire le parent
ce que je demande, c'est si ma fenêtre est au courant qu'elle a des enfants à rafraichir.
pour le moment je trouve pas, v poser la question sur le forum des englishes

Publié : mer. 10/mars/2004 9:53
par Le Soldat Inconnu
J'ai trouvé
Code : Tout sélectionner
WindowE = GetForegroundWindow_()
OpenWindow(0, 200, 200, 500, 500, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #WS_CLIPCHILDREN, "Options")
SetWindowLong_(WindowE, #GWL_EXSTYLE, GetWindowLong_(WindowE, #GWL_EXSTYLE) | #WS_EX_MDICHILD)
SetParent_(WindowE, WindowID())
MoveWindow_(WindowE, 0, 0, 400, 400, 1)
Repeat
Event = WaitWindowEvent()
Until Event = #WM_CLOSE
SetWindowLong_(WindowE, #GWL_EXSTYLE, GetWindowLong_(WindowE, #GWL_EXSTYLE) ! #WS_EX_MDICHILD)
SetParent_(WindowE, 0)
Publié : jeu. 11/mars/2004 16:49
par Le Soldat Inconnu
Une autre question :
pour avoir la barre de titre de la fen principale toujours active ?
quand j'utilise
Code : Tout sélectionner
SetWindowLong_(WindowE, #GWL_EXSTYLE, GetWindowLong_(WindowE, #GWL_EXSTYLE) | #WS_EX_MDICHILD)
elle reste active mais la fenêtre child ne se rafraichit plus.
je solicite donc à nouveau votre aide. merci

Publié : jeu. 11/mars/2004 19:10
par Anonyme2
Comme je vois, fait toujours soif

Publié : ven. 12/mars/2004 14:03
par Le Soldat Inconnu
Oui, certe mais as-tu une solution à part faire une danse indienne pour faire tomber la pluie

Publié : ven. 12/mars/2004 14:46
par Patrick88
Le Soldat Inconnu a écrit :Oui, certe mais as-tu une solution à part faire une danse indienne pour faire tomber la pluie

http://purebasic.hmt-forum.com/viewtopic.php?t=286
-> sujet interview, ma réponse
ralàlà...
ugh et tamtam
Publié : ven. 12/mars/2004 15:00
par Le Soldat Inconnu
Tu va prendre un coup de Tomahawk sur les orteils, toi

Publié : ven. 12/mars/2004 15:06
par Patrick88
là, j'ai déjà pris un coup de bistouri, alors, bon là, ça sera bon pour aujourd'hui .... bobo
ugh'ô fré
Publié : ven. 12/mars/2004 15:32
par Anonyme2
Oui, certe mais as-tu une solution à part faire une danse indienne pour faire tomber la pluie
Non, mais as-tu pensé au Vaudou
et je cherche pas trop, je travaille sur ma librairie pour de nouvelles commandes.
Publié : dim. 11/avr./2004 16:58
par Jean-Paul
Le Soldat Inconnu a écrit :Une autre question :
pour avoir la barre de titre de la fen principale toujours active ?
quand j'utilise
Code : Tout sélectionner
SetWindowLong_(WindowE, #GWL_EXSTYLE, GetWindowLong_(WindowE, #GWL_EXSTYLE) | #WS_EX_MDICHILD)
elle reste active mais la fenêtre child ne se rafraichit plus.
je solicite donc à nouveau votre aide. merci

As tu trouvé depuis, je ne l'ai pas vu dans d'autres post
Merci, par avance