Hallo,
ich habe folgendes Problem. Ich benutzt ein Window Screen mit Full HD und ohne Border. Darüber platziere ich 1 Sticky Window.
Wenn der Screen den Focus hat, werden in den Windows die Mouse Position nicht angezeigt, aber sobald man die Mouse Taste betätigt erscheint der Mouse Zeiger wenn sich die Screen Mouse Position unter oder über dem Stiky Window befindet und das will ich nicht. Ich nehme an das ist ein Bug. Das will ich nun umgehen. Also Disable ich das Window wenn der Fokus auf dem Screen liegt. Das funktioniert fast. Denn nun macht das System einen 'Pling' jedesmal wenn die Mouse Position über dem deaktivierten Window Positioniert ist und die Mouse Taste gedrückt wird. Kann man das 'Pling' irgendwie abschalten?
Thx Temucin alias tft
Edit by NicTheQuick: Threadtitel korrigiert, damit man ihn in der Suche besser finden kann.
StickyWindow Problem
- tft
- Beiträge: 650
- Registriert: 08.09.2004 20:18
- Computerausstattung: GFX 3060 Ti , i7 12700F , 32 GB Ram , 900 GB SSD , TV
- Wohnort: Dachsen
- Kontaktdaten:
StickyWindow Problem
TFT seid 1989 , Turgut Frank Temucin , CH-Dachsen/DE-Berlin/TR-Antalya
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung
PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung
PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler

Re: StikyWindow Problem
Ein lauffähiger Code, der genau das macht, was du da sagst, wäre jetzt echt hilfreich, für die Helfer...
Vielleicht hast du ja bloss irgendwo 'nen kleinen Schnitzer ....
Vielleicht hast du ja bloss irgendwo 'nen kleinen Schnitzer ....
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
- tft
- Beiträge: 650
- Registriert: 08.09.2004 20:18
- Computerausstattung: GFX 3060 Ti , i7 12700F , 32 GB Ram , 900 GB SSD , TV
- Wohnort: Dachsen
- Kontaktdaten:
Re: StikyWindow Problem
Hallo,
der code ist noch recht simple. Aber er ist für 3 Monitore gedacht. Daher fileicht an einigen stellen komisch
aber eigentlich ist da nichts besonderes drann.
der code ist noch recht simple. Aber er ist für 3 Monitore gedacht. Daher fileicht an einigen stellen komisch
aber eigentlich ist da nichts besonderes drann.
Code: Alles auswählen
;
; ------------------------------------------------------------
;
; Test 001, StartUp, MultiDesk Unterstützung
;
; (c) 2013 - TFT Optima-Code
;
; ------------------------------------------------------------
;
#CameraSpeed = 1
Define.f KeyX, KeyY, MouseX, MouseY
Procedure UnHideAccessMenu(hwnd.l=0)
Protected ingStyle.l
lngStyle = GetWindowLong_(WindowID(hwnd), #GWL_STYLE)
lngStyle = lngStyle | #WS_SYSMENU
SetWindowLong_(WindowID(hwnd), #GWL_STYLE, lngStyle)
SetWindowPos_(WindowID(hwnd), #HWND_TOP, 0, 0, 0, 0, #SWP_NOMOVE | #SWP_NOSIZE |#SWP_DRAWFRAME )
EndProcedure
Procedure HideAccessMenu(hwnd.l=0)
Protected ingStyle.l
lngStyle = GetWindowLong_(WindowID(hwnd), #GWL_STYLE)
lngStyle = lngStyle &~ #WS_SYSMENU
SetWindowLong_(WindowID(hwnd), #GWL_STYLE, lngStyle)
SetWindowPos_(WindowID(hwnd), #HWND_TOP, 0, 0, 0, 0, #SWP_NOMOVE | #SWP_NOSIZE |#SWP_DRAWFRAME )
EndProcedure
Procedure SetWinTransparency(win,level)
If level>=0 And level<101
hLib = LoadLibrary_("user32.dll")
If hLib
adr = GetProcAddress_(hLib,"SetLayeredWindowAttributes")
If adr
SetWindowLong_(WindowID(win),#GWL_EXSTYLE,GetWindowLong_(WindowID(win),#GWL_EXSTYLE)|$00080000) ; #WS_EX_LAYERED = $00080000
CallFunctionFast(adr,WindowID(win),0,255*level/100,2)
EndIf
FreeLibrary_(hLib)
EndIf
EndIf
EndProcedure
OpenConsole()
If InitEngine3D()
UsePNGImageDecoder()
Add3DArchive("Data/Textures", #PB_3DArchive_FileSystem)
InitSprite()
InitSprite3D()
InitKeyboard()
InitMouse()
AnzDesk=ExamineDesktops()
PrintN("Sie haben "+Str(AnzDesk)+" Desktops.")
For i=1 To AnzDesk
ScreenX = DesktopWidth(i-1)
ScreenY = DesktopHeight(i-1)
ScreenD = DesktopDepth(i-1)
ScreenF = DesktopFrequency(i-1)
PrintN("Desktop "+i+" ( "+ScreenX+"/"+ScreenY+"/"+ScreenD+"/"+ScreenF+" )")
Next
PrintN("Home directory : "+GetHomeDirectory())
PrintN("Es stehen "+ Str(MemoryStatus(#PB_System_FreePhysical )/1024/1024) +" MByte Ram zur verfügung")
;FlipRate = 16;1000/ScreenF
;PrintN("FlipRate "+Str(FlipRate))
;sxPos=-ScreenX
Window1=OpenWindow(#PB_Any, sxPos, 0, ScreenX , ScreenY, "Optima Code , TFT 2013" , #PB_Window_BorderLess)
Screen = OpenWindowedScreen(WindowID(Window1), 0, 0, ScreenX , ScreenY, 0, 0, 0, #PB_Screen_WaitSynchronization )
Window2=OpenWindow(#PB_Any,sxPos+20,20,400,300,"teset")
HideAccessMenu(Window2)
StickyWindow(Window2, 1)
SetWinTransparency(Window2,100)
SetWindowTitle(Window2,"SystemInfo")
Window3=OpenWindow(#PB_Any,sxPos+20,380,400,300,"teset")
HideAccessMenu(Window3)
StickyWindow(Window3, 1)
SetWinTransparency(Window3,100)
SetWindowTitle(Window2,"Edit")
SetActiveWindow(Window1)
DisableWindow(Window2, 1)
DisableWindow(Window3, 1)
AmbientColor(RGB(255, 255, 255)) ; Gray 'HUD' like color
Cam1=CreateCamera(#PB_Any, 0, 0, 100, 100) ; Front camera
MoveCamera(Cam1,0,0,1000,#PB_Absolute)
RotateCamera(Cam1,0,0,0)
CameraBackColor(Cam1, RGB(0, 0, 0))
CameraFOV(Cam1, 20)
Mesh=CreateCube(#PB_Any,1) ;CreateCube(#PB_Any,10) CreateSphere(#PB_Any, 2
Texture=LoadTexture(#PB_Any,"fenster01.png"): If Texture=0 :End :EndIf
StartDrawing(TextureOutput(Texture))
DrawText(10,10,"Test",RGB(255,255,255),RGB(63,63,63))
StopDrawing()
Material=CreateMaterial(#PB_Any,TextureID(Texture))
MaterialBlendingMode(Material, #PB_Material_Add ); #PB_Material_Add #PB_Material_AlphaBlend #PB_Material_Color
;MaterialCullingMode(Material , #PB_Material_NoCulling ); #PB_Material_NoCulling #PB_Material_ClockWiseCull #PB_Material_AntiClockWiseCull
Entity=CreateEntity(#PB_Any,MeshID(Mesh),MaterialID(Material),0,0,0,0)
MoveEntity(Entity,0,0,0)
ScaleEntity(Entity,427,357,1)
;HideEntity(Entity,1)
For i2 = -5 To 5
For i1 = -5 To 5
For i = -5 To 5
; k=CopyEntity(Entity, #PB_Any)
;MoveEntity(k,i*20,i1*20,i2*20)
Next
Next
Next
;FreeEntity(entity)
sp=LoadSprite(#PB_Any,"Data/hand1.png",#PB_Sprite_Texture| #PB_Sprite_AlphaBlending )
If sp = 0 : End : EndIf
sp3D = CreateSprite3D(#PB_Any,sp)
ZoomSprite3D(sp3D,32,32)
;FPS_ControllTimer=ElapsedMilliseconds()+ FlipRate
Repeat
MouseB = 0
If Fokus = 0
If ExamineMouse()
MouseX = -MouseDeltaX() * #CameraSpeed * 0.05
MouseY = -MouseDeltaY() * #CameraSpeed * 0.05
MousePosX = MouseX()
MousePosY = MouseY()
If MouseButton(1) : MouseB = 1 : EndIf
If MouseButton(2) : MouseB = 2 : EndIf
EndIf
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_A)
KeyX = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_D)
KeyX = #CameraSpeed
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_W)
KeyY = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_S)
KeyY = #CameraSpeed
Else
KeyY = 0
EndIf
EndIf
If KeyboardReleased(#PB_Key_Tab)
Fokus = Fokus + 1 : If Fokus = 2 : Fokus = 0 : EndIf
If Fokus = 1
SetActiveWindow(Window2)
DisableWindow(Window2, 0)
DisableWindow(Window3, 0)
EndIf
ReleaseMouse(Fokus):
EndIf
Else
MouseX=0.0
MouseY=0.0
KeyX=0.0
KeyY=0.0
EndIf
AWin=GetActiveWindow()
Repeat
EventCount=0
Event = WindowEvent()
If Event>0
xPos = EventlParam() & $FFFF ; hole das Low Word (16 Bit)
yPos = EventlParam()>>16 ; hole das High Word (16 Bit)
fwKeys = EventwParam() ; hole die Flags ggf. gedrückter Tasten
win = EventWindow()
EndIf
Select Event
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #WM_KEYDOWN
Select fwKeys
Case #VK_ESCAPE
Quit=1
Case #VK_TAB
If Fokus = 1
Fokus = Fokus + 1 : If Fokus = 2 : Fokus = 0 : EndIf
If Fokus = 0
SetActiveWindow(Window1)
DisableWindow(Window2, 1)
DisableWindow(Window3, 1)
EndIf
ReleaseMouse(Fokus)
EndIf
EndSelect
PrintN("#WM_KEYDOWN "+Str(Event)+" "+Str(fwKeys)+" "+Str(win)) : EventCount=1
Case #WM_KEYUP
PrintN("#WM_KEYUP "+Str(Event)+" "+Str(fwKeys)+" "+Str(win)): EventCount=1
Case #WM_KEYDOWN
PrintN("#WM_KEYDOWN "+Str(Event)+" "+Str(fwKeys)): EventCount=1
Case #WM_SYSKEYUP
PrintN("#WM_SYSKEYUP "+Str(Event)+" "+Str(fwKeys)): EventCount=1
Case #WM_SYSKEYDOWN
PrintN("#WM_SYSKEYDOWN "+Str(Event)+" "+Str(fwKeys)): EventCount=1
Case #WM_CHAR
PrintN("#WM_CHAR "+Str(Event)+" "+Chr(fwKeys)): EventCount=1
Case #WM_MOUSEMOVE
;PrintN("#WM_MOUSEMOVE "+Str(Event)+" x:" + Str(xPos) + " y:" + Str(yPos)+" "+Str(win))
EventCount=1
If GetActiveWindow() = Window1
MousePosX=xPos
MousePosY=yPos
Else
MousePosX=-1
MousePosY=-1
EndIf
Case 160
;PrintN("Mouse bewegung über der Titelzeile "+Str(Event)+" x:" + Str(xPos) + " y:" + Str(yPos)): EventCount=1
Case #WM_MOUSEWHEEL
PrintN("WM_MOUSEWEEL "+Str(Event)+" "+StrF(fwKeys)): EventCount=1
Case #WM_LBUTTONDOWN
PrintN("WM_LBUTTONDOWN "+Str(Event)): EventCount=1
MouseB = 1
If GetActiveWindow() = Window1
MousePosX=xPos
MousePosY=yPos
Else
MousePosX=-1
MousePosY=-1
EndIf
Case #WM_LBUTTONUP
PrintN("WM_LBUTTONUP "+Str(Event)): EventCount=1
Case #PB_Event_LeftClick
PrintN("PB_Event_LeftClick "+Str(Event)+" "+StrF(fwKeys)+" "+Str(win)): EventCount=1
Case #PB_Event_LeftDoubleClick
PrintN("PB_Event_LeftDoubleClick "+Str(Event)): EventCount=1
MouseB = 1
Case #WM_RBUTTONDOWN
PrintN("WM_RBUTTONDOWN "+Str(Event)): EventCount=1
Case #WM_RBUTTONUP
PrintN("WM_RBUTTONUP "+Str(Event)): EventCount=1
Case #PB_Event_RightClick
PrintN("PB_Event_RightClick "+Str(Event)): EventCount=1
Case #PB_Event_ActivateWindow
PrintN("PB_Event_ActivateWindow "+Str(Event)+" "+StrF(fwKeys)): EventCount=1
Case #PB_Event_DeactivateWindow
PrintN("PB_Event_DeactivateWindow "+Str(Event)+" "+StrF(fwKeys)): EventCount=1
Case #PB_Event_Gadget
Select EventGadget()
Case 1
Select EventType()
Case #PB_EventType_LeftClick : Debug "Klick mit der linken Maustaste"
Case #PB_EventType_RightClick : Debug "Klick mit der rechten Maustaste"
Case #PB_EventType_LeftDoubleClick : Debug "Doppelklick mit der linken Maustaste"
Case #PB_EventType_RightDoubleClick : Debug "Doppelklick mit der rechten Maustaste"
EndSelect
EndSelect
Case #WM_CLOSE
Quit = 1
EndSelect
If (Event>0 Or Event<0 ) And EventCount=0
PrintN("Event "+Str(Event)+" Type "+Str(EventType())+" x:" + Str(xPos) + " y:" + Str(yPos) + " Keys: " + fwKeys)
EndIf
Until Event = 0
ent=0
If Fokus = 0
RotateCamera(Cam1, MouseY, MouseX, 0, #PB_Relative)
MoveCamera (Cam1, KeyX, 0, KeyY)
Else
If MouseB=1 And MousePosX>-1 And MousePoxY>-1 And GetActiveWindow() = Window1
;PrintN(Str(MouseX())+"/"+Str(MouseY()))
ent=MousePick(Cam1, MousePosX,MousePosY)
If ent>0
FreeEntity(ent)
EndIf
EndIf
If ent <>0
entold=ent
PrintN(Str(ent))
EndIf
EndIf
RenderWorld()
;While FPS_ControllTimer>ElapsedMilliseconds()
;Delay(1)
;Wend
;FPS_ControllTimer=ElapsedMilliseconds()+FlipRate
; DisplaySprite(sp, MousePosX, MousePosY) ; Hintergrundbild darstellen
Start3D()
DisplaySprite3D(sp3D, MousePosX,MousePosY, 255)
Stop3D()
FlipBuffers()
Until Quit = 1
EndIf
Delay (2000)
End
TFT seid 1989 , Turgut Frank Temucin , CH-Dachsen/DE-Berlin/TR-Antalya
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung
PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung
PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler
