Mauszeiger am Rand eines eigenen Fensters

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Mauszeiger am Rand eines eigenen Fensters

Beitrag von Bisonte »

Hallo ...

In meinem Beispiel wird der Mauszeiger zu "Richtungspfeilen", was ich gerne unterbinden möchte.

Wie mache ich das am besten ?

Code: Alles auswählen

OpenWindow(0, 300, 300, 300, 300, "", #PB_Window_BorderLess|#WS_SIZEBOX)
WindowBounds(0, 300, 300, 300, 300)
Repeat
  Event = WaitWindowEvent()
  If Event = #PB_Event_CloseWindow
    Quit = 1
  EndIf
  If Event = #WM_LBUTTONDOWN
    SendMessage_(WindowID(0),#WM_NCLBUTTONDOWN, #HTCAPTION,0)
  EndIf
Until Quit > 0
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​​
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Mauszeiger am Rand eines eigenen Fensters

Beitrag von Kiffi »

Du könntest #WS_SIZEBOX durch #WS_BORDER ersetzen (wenn das optisch für Dich passt).

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Mauszeiger am Rand eines eigenen Fensters

Beitrag von Bisonte »

Danke.

Allerdings ist dann der schicke Aero Rahmen weg, um den es mir ja ging.
Dann könnt ich gleich den Rahmen selbermalen.

Also ist das "Problem" noch existent ;)
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​​
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Mauszeiger am Rand eines eigenen Fensters

Beitrag von RSBasic »

Code: Alles auswählen

EnableExplicit

Define EventID
Global WNDPROC

Procedure WNDPROC(hWnd, uMsg, wParam, lParam)
  Protected CWPResult = CallWindowProc_(WNDPROC, hWnd, uMsg, wParam, lParam)
  
  Select uMsg
    Case #WM_NCHITTEST
      Select CWPResult
        Case #HTLEFT To #HTBOTTOMRIGHT
          ProcedureReturn 0
      EndSelect
  EndSelect

  ProcedureReturn CWPResult
EndProcedure


If OpenWindow(0, 0, 0, 500, 400, "", #PB_Window_BorderLess | #WS_SIZEBOX | #PB_Window_ScreenCentered)
  WNDPROC = SetWindowLongPtr_(WindowID(0),#GWL_WNDPROC,@WNDPROC())
  
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #WM_LBUTTONDOWN
      SendMessage_(WindowID(0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
    EndIf
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Mauszeiger am Rand eines eigenen Fensters

Beitrag von Bisonte »

Klappt wunderbar, danke.

War das etwa in deiner API Library versteckt ?
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​​
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Mauszeiger am Rand eines eigenen Fensters

Beitrag von RSBasic »

Nein, aber wird demnächst hinzugefügt.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Mauszeiger am Rand eines eigenen Fensters

Beitrag von Bisonte »

und ich hab schon wieder an meinen Äuglein gezweifelt ;)
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​​
Antworten