Seite 1 von 1

Wie kann ich den Mauszeiger im Hauptfenster sichtbar machen

Verfasst: 23.08.2009 18:59
von Derb

Code: Alles auswählen

; --- Grundeinstellungen ---
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
  MessageRequester("Error", "Can't open the sprite system", 0)
  End
EndIf
; --- Grundeinstellungen ---


; --- Erstelle HaupFenster ---
If OpenWindow(0,10,10,1000,800,"Menü und Toolbar",#PB_Window_SystemMenu)


; --- Erstelle Arbeits Bildschirm --- 
If OpenWindowedScreen(WindowID(0), 20, 20, 500, 500, 0, 0, 0)
  LoadSprite(0, "Data/PureBasic.bmp", 0)
  CopySprite(0,1,0)
Else
  MessageRequester("Error", "Can't open windowed screen!", 0)
  End
EndIf
; --- Erstelle Arbeits Bildschirm --- 


; --- Erstelle Sprites ---
x = 100
y = 100
LoadSprite(0, "Data/PureBasic.bmp", 0) 
; --- Erstelle Sprites ---


; --- Erstelle eine GadgetListe ---
If UseGadgetList(WindowID(0))
  TextGadget(1,550,60,210,20,"",#PB_Text_Center|#PB_Text_Border)
  ButtonGadget(2,550,100,150,20,"Programm Ende")
EndIf
; --- Erstelle eine Gadget Liste ---


; --- Erstelle eine MenüListe ---
If CreateMenu(0, WindowID(0))
  MenuTitle("Datei")
  MenuItem( 1, "Neu")
  MenuItem( 2, "Laden")
  MenuBar()
  MenuItem( 3, "Speichern")
  MenuTitle("Drucken")
  MenuItem(4,"Drucken")
  MenuTitle("Ende")
  MenuItem(5, "Ende")
EndIf
; --- Erstelle eine MenüListe ---


; --- Erstelle eine ToolBar ---
If CreateToolBar(0, WindowID(0))
  ToolBarStandardButton(1, #PB_ToolBarIcon_New)
  ToolBarStandardButton(2, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(3, #PB_ToolBarIcon_Save)
  ToolBarSeparator()
  ToolBarStandardButton(4, #PB_ToolBarIcon_Print)
EndIf
; --- Erstelle eine ToolBar ---


; --- Erstelle die Status Bar im Haupt Fenster ---
If CreateStatusBar(0,WindowID(0))
  AddStatusBarField(#PB_Ignore )
EndIf
; --- Erstelle die Status Bar im Haupt Fenster ---


; --- Abfrage Schleife ---
Repeat
  EventID = WaitWindowEvent()

  If EventID = #PB_Event_CloseWindow 
    Quit = 1
  EndIf

    If EventID = #PB_Event_Menu
  If EventMenu()=1
    SetGadgetText(1,"Neu")

    StatusBarText(0,0,"Neu !",#PB_StatusBar_Center )
  EndIf
  If EventMenu()=2
    SetGadgetText(1,"Laden")

    StatusBarText(0,0,"Laden !",#PB_StatusBar_Center )
  EndIf
  If EventMenu()=3
    SetGadgetText(1,"Speichern")

    StatusBarText(0,0,"Speichern !",#PB_StatusBar_Center )
  EndIf
  If EventMenu()=4
    SetGadgetText(1,"Drucken")

    StatusBarText(0,0,"Drucken !",#PB_StatusBar_Center )
  EndIf 
  If EventMenu()=5
    MessageRequester("","Programmende!",0)
    End
  EndIf 
EndIf


If EventID=#PB_Event_Gadget
  If EventGadget()=2
    Quit=1
  EndIf
EndIf






  FlipBuffers()                        ; Flip for DoubleBuffering
  ClearScreen(RGB(0,0,0))                   ; CleanScreen, black

  ExamineKeyboard()
  ExamineMouse()                      
          
  x = MouseX()                         ; Returns actual x pos of our mouse
  y = MouseY()                         ; Returns actual y pos of our mouse
  
  x+MouseWheel()*10
  
  If MouseButton(#PB_MouseButton_Right)
    MouseLocate(400, 300)
  EndIf

  DisplaySprite(0, x-SpriteWidth(0)/2, y-SpriteHeight(0)/2)












Until Quit=1 Or KeyboardPushed(#PB_Key_Escape)
; --- Abfrage Schleife ---


EndIf
; --- Erstelle HaupFenster ---


End



Nehmen wir mal diesen Code

Ich möchte das mein Maus Zeiger auf dem ganzen Fenster zu sehen ist und auch zu benutzen werden kann, sobald er jedoch in den WindowedScreen fährt soll das Sprite bewegt werden...


1000 Dank

Verfasst: 23.08.2009 20:39
von Kaeru Gaman
verzichte auf die DX-Mouselib, nimm WindowMouseX/Y um die Koordinaten zu ermitteln.

Verfasst: 23.08.2009 21:04
von Falko
Für den Anfang sollte das helfen. Die Mauskoordinaten musst du noch
etwas anpassen. Ebenso die rechte Maustaste einbauen, die ich testhalber
raus genommen hatte.

Code: Alles auswählen

; --- Grundeinstellungen ---
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
  MessageRequester("Error", "Can't open the sprite system", 0)
  End
EndIf
; --- Grundeinstellungen ---


; --- Erstelle HaupFenster ---
If OpenWindow(0,10,10,1000,800,"Menü und Toolbar",#PB_Window_SystemMenu)


; --- Erstelle Arbeits Bildschirm ---
If OpenWindowedScreen(WindowID(0), 20, 20, 500, 500, 0, 0, 0)
  LoadSprite(0, "Data\PureBasic.bmp", 0)
  CopySprite(0,1,0)
Else
  MessageRequester("Error", "Can't open windowed screen!", 0)
  End
EndIf
; --- Erstelle Arbeits Bildschirm ---


; --- Erstelle Sprites ---
x = 100
y = 100
LoadSprite(0, "Data/PureBasic.bmp", 0)
; --- Erstelle Sprites ---


; --- Erstelle eine GadgetListe ---
If UseGadgetList(WindowID(0))
  TextGadget(1,550,60,210,20,"",#PB_Text_Center|#PB_Text_Border)
  ButtonGadget(2,550,100,150,20,"Programm Ende")
EndIf
; --- Erstelle eine Gadget Liste ---


; --- Erstelle eine MenüListe ---
If CreateMenu(0, WindowID(0))
  MenuTitle("Datei")
  MenuItem( 1, "Neu")
  MenuItem( 2, "Laden")
  MenuBar()
  MenuItem( 3, "Speichern")
  MenuTitle("Drucken")
  MenuItem(4,"Drucken")
  MenuTitle("Ende")
  MenuItem(5, "Ende")
EndIf
; --- Erstelle eine MenüListe ---


; --- Erstelle eine ToolBar ---
If CreateToolBar(0, WindowID(0))
  ToolBarStandardButton(1, #PB_ToolBarIcon_New)
  ToolBarStandardButton(2, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(3, #PB_ToolBarIcon_Save)
  ToolBarSeparator()
  ToolBarStandardButton(4, #PB_ToolBarIcon_Print)
EndIf
; --- Erstelle eine ToolBar ---


; --- Erstelle die Status Bar im Haupt Fenster ---
If CreateStatusBar(0,WindowID(0))
  AddStatusBarField(#PB_Ignore )
EndIf
; --- Erstelle die Status Bar im Haupt Fenster ---


; --- Abfrage Schleife ---
Repeat
  EventID = WaitWindowEvent()
  
  If EventID = #PB_Event_CloseWindow
    Quit = 1
  EndIf
  

    If EventID = #PB_Event_Menu
  If EventMenu()=1
    SetGadgetText(1,"Neu")

    StatusBarText(0,0,"Neu !",#PB_StatusBar_Center )
  EndIf
  If EventMenu()=2
    SetGadgetText(1,"Laden")

    StatusBarText(0,0,"Laden !",#PB_StatusBar_Center )
  EndIf
  If EventMenu()=3
    SetGadgetText(1,"Speichern")

    StatusBarText(0,0,"Speichern !",#PB_StatusBar_Center )
  EndIf
  If EventMenu()=4
    SetGadgetText(1,"Drucken")

    StatusBarText(0,0,"Drucken !",#PB_StatusBar_Center )
  EndIf
  If EventMenu()=5
    MessageRequester("","Programmende!",0)
    End
  EndIf
EndIf


If EventID=#PB_Event_Gadget
  If EventGadget()=2
    Quit=1
  EndIf
  
EndIf

  FlipBuffers()     
ExamineKeyboard()
  If WindowMouseY(0)>=20 And WindowMouseX(0)<=500 And WindowMouseY(0)>=20 And WindowMouseY(0)<=500
                     ; Flip for DoubleBuffering
  
  ClearScreen(RGB(0,0,0))                   ; CleanScreen, black

  
  ExamineMouse()    
  ReleaseMouse(0)
  x = MouseX()                         ; Returns actual x pos of our mouse
  y = MouseY()                         ; Returns actual y pos of our mouse
 
  x+MouseWheel()*10
   
    DisplaySprite(0, x-SpriteWidth(0)/2, y-SpriteHeight(0)/2)
  Else
    ReleaseMouse(1)
  EndIf

 


Until Quit=1 Or KeyboardPushed(#PB_Key_Escape)
; --- Abfrage Schleife ---


EndIf
; --- Erstelle HaupFenster ---


End

Danke

Verfasst: 23.08.2009 21:43
von Derb
Danke für den Tipp ... wie immer liegt der Fehler im Detail...