Seite 2 von 2

Verfasst: 12.08.2005 12:09
von PAMKKKKK
@Mash
Deine Aussagen sind nicht präzise! Was denn nun?
Wenn man sich nicht deutlich ausdrückt, kriegt man auch keine eindeutige antwort! (oder gar keine)

1. Soll dein Fenster nun verschiebbar oder nicht verschiebbar sein?
2 .Oder möchtest du ein Fremdes Fenster verschieben?
3. oder möchtest du dein Fenster mit deinem Programmcode verschieben?

1 , 2 , oder 3…. du musst dich entscheiden, 3 Felder sind frei!
Plopp….

[Edit]
Du findes auf www.purearea.net das sehr gute CodeArchiv, da sind ne menge beispiele drin. Zieh dir das rein das Hilft !!

Code geändert: Fenster nich in der Taskbar anzeigen

[/edit]

Code: Alles auswählen

; Fenster nicht verschiebbar
; Pamkkkkk 12.August 2005 PB 3.93



 If OpenWindow(0,0,0,230,90,#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_Invisible,"Verschieb mich !")
  If CreateGadgetList(WindowID())
    ButtonGadget  (1, 10, 10,200, 20, "Klick mich")
    CheckBoxGadget(2, 10, 40,200, 20, "Markiere mich")
  EndIf
 
  If CreateMenu(0, WindowID())
    MenuTitle("Menu")
    MenuItem(1, "Eintrag 1")
    MenuItem(2, "Eintrag 2")
    MenuItem(3, "Eintrag 3")
  EndIf
  
   ; es wirkt leider nur: Fenster immer oben (#HWND_TOPMOST)
  SetWindowPos_(WindowID(0), #HWND_TOPMOST, 0, 0, 0, 0,#SWP_NOMOVE | #SWP_NOSIZE)
  SetWindowLong_(WindowID(0),#GWL_EXSTYLE,#WS_EX_TOOLWINDOW) ; Fenster nich in der Taskbar anzeigen
  
  HideWindow(0, 0) ; Jetzt erst Fenster zeichnen lassen
  WinX = WindowX() ; X Position retten
  WinY = WindowY() ; y Position retten
   
  Repeat
    EventID = WaitWindowEvent()
    
    Select EventID
      
      Case #WM_MOVE ; Wenn Fensterbewegung ....
        MoveWindow(WinX,WinY) ; .....Fenster auf alte Position zurück setzen
      
      Case #PB_Event_Gadget
        Select EventGadgetID()
          Case 1 : Debug "Schalter 1 angeklickt!"
          Case 2 : Debug "Schalter 2 angeklickt!"
          Case 3 : Debug "Schalter 3 angeklickt!"
        EndSelect
        
      Case #PB_Event_Menu
        Select EventMenuID()
          Case 1 : Debug "Menü-Eintrag 1 angeklickt!"
          Case 2 : Debug "Menü-Eintrag 2 angeklickt!"
          Case 3 : Debug "Menü-Eintrag 3 angeklickt!"
        EndSelect
    EndSelect
    
  Until EventID = #PB_Event_CloseWindow
EndIf

Verfasst: 12.08.2005 12:59
von iF
Damit das Fenster nicht mehr verschiebbar ist - musst Du halt im Fenstercallback die entsprechende Message selbst verarbeiten - in diesem Fall ebend garnicht. :? Schaue Dir also verschiedene Callbackbeispiele an und versuche Dich in's Verschieben einzuklinken. Ich bin kein PB'ler - daher kein Code von mir. Im Grunde ist das aber sehr einfach.

Um das Fenster aus der Taskleiste zu bekommen gibt's zwei Wege - einmal über in PB glaube callcom(#20.... also über Comobjects - oder Trick17 - Du legst das Fenster auf einen Parent welchen Du versteckst. Das klappt auch.

Salve.

Nachtrag: Huch - ich sehe grad da war ja schon jemand schneller. :)

Verfasst: 12.08.2005 13:41
von MASH
Ihr habt mir alle sehr geholfen "!Danke!"

Code: Alles auswählen

SetWindowPos_(WindowID(#Window_Toolbar),#HWND_TOPMOST,XPosition,0,WindowLang,25,#SWP_NOMOVE|#SWP_NOSIZE)
SetWindowLong_(WindowID(#Window_Toolbar),#GWL_EXSTYLE,#WS_EX_TOOLWINDOW)
Diese Beiden Zeilen waren das. :allright: