Page 1 sur 2
Papier peint sur une fenêtre
Publié : mer. 15/févr./2006 15:50
par Flype
Tout petit truc rigolo pour avoir le papier pein du bureau dans une fenêtre (Source PB4) :
Code : Tout sélectionner
Procedure.l myCallback(hWnd.l,uMsg.l,wParam.l,lParam.l)
Result = #PB_ProcessPureBasicEvents
Select uMsg
Case #WM_PAINT,#WM_SIZING, #WM_MOVING: PaintDesktop_(GetDC_(hWnd))
EndSelect
ProcedureReturn Result
EndProcedure
If OpenWindow(0,100,100,320,240,#PB_Window_SystemMenu|#PB_Window_SizeGadget,"")
SetWindowCallback(@myCallback(),0)
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
Publié : mer. 15/févr./2006 16:33
par Chris
Pas mal!
Mais si tu mets des gadgets, ils s'effacent quand tu bouges la fenêtre

Publié : mer. 15/févr./2006 17:02
par Flype
pas si tu fait comme çà par exemple.
Code : Tout sélectionner
Procedure.l myCallback(hWnd.l,uMsg.l,wParam.l,lParam.l)
Select uMsg
Case #WM_PAINT,#WM_SIZING,#WM_MOVING
PaintDesktop_(GetDC_(GadgetID(3)))
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(0,100,100,320,240,#PB_Window_SystemMenu|#PB_Window_SizeGadget,"")
CreateGadgetList(WindowID(0))
ButtonGadget(1,5,5,100,50,"Hello")
EditorGadget(2,5,60,100,175)
ContainerGadget(3,110,5,205,230,#PB_Container_Double)
CloseGadgetList()
SetWindowCallback(@myCallback(),0)
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
Publié : mer. 15/févr./2006 17:08
par Flype
ou comme çà même si çà clignote dur (c'est juste pour le fun) :
Code : Tout sélectionner
Procedure.l myCallback(hWnd.l,uMsg.l,wParam.l,lParam.l)
Select uMsg
Case #WM_PAINT,#WM_SIZING,#WM_MOVING
PaintDesktop_(GetDC_(hWnd))
For i=1 To 2
RedrawWindow_(GadgetID(i),0,0,$407)
Next
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(0,100,100,320,240,#PB_Window_SystemMenu|#PB_Window_SizeGadget,"")
CreateGadgetList(WindowID(0))
ButtonGadget(1,5,5,100,50,"Hello")
EditorGadget(2,5,60,100,175)
SetWindowCallback(@myCallback(),0)
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
Publié : mer. 15/févr./2006 18:11
par erix14
J'ai amélioré un peu ton programme pour enlever le clignotement
Code : Tout sélectionner
Procedure.l myCallback(hWnd.l,uMsg.l,wParam.l,lParam.l)
Select uMsg
Case #WM_ERASEBKGND
ProcedureReturn
Case #WM_PAINT
For i=1 To 2
x = GadgetX(i)
y = GadgetY(i)
SetRect_(Rect.RECT,x,y,x+GadgetWidth(i),y+GadgetHeight(i))
ValidateRect_(hWnd,Rect)
RedrawWindow_(GadgetID(i),0,0,$407)
Next
PaintDesktop_(BeginPaint_(hWnd,ps.PAINTSTRUCT))
EndPaint_(hWnd,ps)
Case #WM_SIZING,#WM_MOVING
InvalidateRect_(hWnd,0,1)
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(0,100,100,320,240,#PB_Window_SystemMenu|#PB_Window_SizeGadget,"")
CreateGadgetList(WindowID(0))
ButtonGadget(1,5,5,100,50,"Hello")
EditorGadget(2,5,60,100,175)
SetWindowCallback(@myCallback(),0)
InvalidateRect_(WindowID(0),0,1)
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
Publié : mer. 15/févr./2006 18:21
par comtois
C'est marrant ce truc

Publié : mer. 15/févr./2006 18:43
par Flype
bravo erix14, le rendu est excellent
et hop un truc à mettre dans la collection de codes...
Publié : mer. 15/févr./2006 19:35
par Oliv
Sympa

Publié : mar. 14/nov./2006 13:24
par Kwai chang caine
Bonjour à tous
C'est vraiment géant.

Je cherchais exactement ça ???
J'aurais 2 questions :
1/ Est ce que ça marche sur tous les OS ????
2/ Peut on faire la fenetre ronde ???
Encore bravo FLYPE et ERIX14
Vous etes tellement bons, qu'on devrait presque etre jaloux
Encore merci
Bonne journée
Publié : ven. 17/nov./2006 11:09
par Ulix
Excellent !
Peut-on faire pareil sans callback et sans Api ?
Quelqu'un a-t-il un exemple ?
Je demande celà pour pouvoir l'utilisé sous linux !
Merci.
Publié : ven. 18/mai/2007 12:01
par #PB_IS_COOL
ahahaha....chez moi sa marche pô

...
J'ai JaPBe et il ne connaît pas #WM_PAINT et tous les trucs d'API Win32...
COMMENT SA SE FAIT ???:?:
OOOOUIUUUUUIUIUINNNN !!!!:!:!:!:!:!:!:!:!:
Publié : ven. 18/mai/2007 12:08
par Backup
#PB_IS_COOL a écrit :ahahaha....chez moi sa marche pô

...
J'ai JaPBe et il ne connaît pas #WM_PAINT et tous les trucs d'API Win32...
COMMENT SA SE FAIT ???:?:
OOOOUIUUUUUIUIUINNNN !!!!:!:!:!:!:!:!:!:!:
si! en principe ça marche avec Japbe, puisque perso je n'utilise que lui !!
refait une installation, si je me souviens bien c'est a l'installe qu'il te demande d'activer tout un tas de trucs du genre

Publié : ven. 18/mai/2007 12:31
par Anonyme
dans fichier->préférences tu peut paramétrer tout ca.

Publié : ven. 18/mai/2007 16:09
par Flype
ou alors tu as la version DEMO de purebasic.

Publié : ven. 18/mai/2007 18:29
par #PB_IS_COOL
ou alors tu as la version DEMO de purebasic.

:?:
Ben ouais...

Dommage ! :'(
Merci quand même !:-|
@+