1) la souris reste bloqué dans la fenêtre graphique et ne veux plus en sortir sauf si je supprime le examinemouse... mais dans ce cas à t'on encore accés à la fenêtre graphique ( en terme de coordonné graphique )
2) est il absolument necessaire de faire des createsprite chaque fois que l'on veut dessiner quelque chose sur la fenêtre graphique ? c'est chiant !
on peut pas faire des bêtes startdrawing.... ?
Code : Tout sélectionner
;- déclaration constante
Enumeration
#WIN_MAIN
#GDT_STATUSBAR
#GDT_STATUSBAR_COORDX
#GDT_STATUSBAR_COORDY
#SPR_CURSEUR
EndEnumeration
;- déclaration structure
Structure STRU_INFO_WINDOW
;relatif à la fenêtre principale
main_x.w
main_y.w
main_width.w
main_height.w
main_flag.l
main_version.s
;relatif à la zone de dessin
draw_x.w
draw_y.w
draw_width.w
draw_height.w
draw_AutoStretch.l
draw_RightOffset.w
draw_BottomOffset.w
EndStructure
;- déclaration variable
Global INFO_WINMAIN.STRU_INFO_WINDOW
; ScreenWidth = GetSystemMetrics_(#SM_CXSCREEN)
; ScreenHeight = GetSystemMetrics_(#SM_CYSCREEN)
Procedure initialisation()
;relatif à la fenêtre principale
INFO_WINMAIN\main_x = 0
INFO_WINMAIN\main_y = 0
INFO_WINMAIN\main_width = 600
INFO_WINMAIN\main_height = 350
INFO_WINMAIN\main_flag = #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget
INFO_WINMAIN\main_version = "Draw-01-00"
;relatif à la zone de dessin
INFO_WINMAIN\draw_x = 4
INFO_WINMAIN\draw_y = 4
INFO_WINMAIN\draw_RightOffset = 25
INFO_WINMAIN\draw_BottomOffset = 25
INFO_WINMAIN\draw_width = INFO_WINMAIN\main_width - INFO_WINMAIN\draw_x-INFO_WINMAIN\draw_RightOffset
INFO_WINMAIN\draw_height = INFO_WINMAIN\main_height - INFO_WINMAIN\draw_y-INFO_WINMAIN\draw_BottomOffset
INFO_WINMAIN\draw_AutoStretch = 1
If InitSprite() = 0 Or InitKeyboard()=0 Or InitMouse() = 0
MessageRequester( "Erreur" , "Impossible d'initialiser DirectX 7 Ou plus" , 0 )
End
ElseIf OpenWindow(#WIN_MAIN,INFO_WINMAIN\main_x,INFO_WINMAIN\main_y,INFO_WINMAIN\main_width,INFO_WINMAIN\main_height,INFO_WINMAIN\main_flag,INFO_WINMAIN\main_version) = 0
MessageRequester( "Erreur", "Impossible d'ouvrir la fenêtre")
End
EndIf
If OpenWindowedScreen( WindowID(#WIN_MAIN), INFO_WINMAIN\draw_x,INFO_WINMAIN\draw_y,INFO_WINMAIN\draw_width,INFO_WINMAIN\draw_height, INFO_WINMAIN\draw_AutoStretch, INFO_WINMAIN\draw_RightOffset, INFO_WINMAIN\draw_BottomOffset ) = 0
MessageRequester( "Erreur" , "Impossible d'ouvrir l'écran " , 0 )
End
EndIf
If CreateStatusBar(#GDT_STATUSBAR, WindowID(#WIN_MAIN))
AddStatusBarField(80)
AddStatusBarField(80)
EndIf
CreateSprite(#SPR_CURSEUR,20,20)
StartDrawing(SpriteOutput(#SPR_CURSEUR))
FrontColor(255,0,0)
LineXY(10,0,10,20)
LineXY(0,10,20,10)
StopDrawing()
EndProcedure
initialisation()
Repeat
ClearScreen(255,255,255)
ExamineMouse()
mx.w = MouseX() : my.w = MouseY()
DisplaySprite(#SPR_CURSEUR,mx-10,my-10)
Debug Str(mx)+"/"+Str(my)
mx = WindowMouseX() : my = WindowMouseY()
StatusBarText(#GDT_STATUSBAR, 0, "X:"+Str(mx))
StatusBarText(#GDT_STATUSBAR, 1, "Y:"+Str(my))
;- gestion des évenement windows
Select WindowEvent()
Case #PB_Event_CloseWindow : Quit = 1
;-Gadgets
Case #PB_Event_Gadget
Select EventGadgetID()
EndSelect
EndSelect
FlipBuffers()
Delay(1)
Until Quit>0
End
patrick