Mindestgröße bei ResizeWindow()

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Mindestgröße bei ResizeWindow()

Beitrag von Vermilion »

Wie kann man eine Mindestgröße bei ResizeWindow() angeben?

Ich hätte mir dass so gedacht:

Code: Alles auswählen

Wenn Fensterweite < 400
ÄndereFensterweite(400)
EndeWenn
Gibt es da nicht eine bessere Art und Weise?

Ich habe den Code jetzt nur mal so geschrieben, weil ich dann nicht so viel hätte nachdenken sowie schreiben müssen! :mrgreen:
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Mindestgröße bei ResizeWindow()

Beitrag von Kiffi »

> Wie kann man eine Mindestgröße bei ResizeWindow() angeben?

nein. Das wäre auch der falsche Ansatz. Wenn, dann müssten die
Minimalausmaße bei OpenWindow() gesetzt werden.

Dennoch gibt es mehrere Methoden, um die Mindest- oder Maximalgröße
zu steuern.

1. Mit PB-Code: Du reagierst auf #PB_Event_SizeWindow und setzt dann
die Koordinaten selber. Nachteil: Das flimmert und flackert wie blöd.

2. Mit einem Callback

3. Mit gnozals PureRESIZE library

4. Mit srods EasyVent

Such Dir was aus ;-)

> Ich habe den Code jetzt nur mal so geschrieben, weil ich dann nicht so
> viel hätte nachdenken sowie schreiben müssen! :mrgreen:

Aha! Du lässt also denken. Und das bei dieser Hitze...

Grüße ... Kiffi
a²+b²=mc²
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Zum Callback:

Ungefähr so...

Code: Alles auswählen

Procedure Callback(WindowID,Message,wParam,lParam)
  Result = #PB_ProcessPureBasicEvents 
  
  Select Message
  Case #WM_GETMINMAXINFO
    GetWindowRect_(WindowID,r.RECT)
    *pMinMax.MINMAXINFO = lParam
    *pMinMax\ptMinTrackSize\x=350
    *pMinMax\ptMinTrackSize\y=180
    *pMinMax\ptMaxTrackSize\x=GetSystemMetrics_(#SM_CXSCREEN)
    *pMinMax\ptMaxTrackSize\y=GetSystemMetrics_(#SM_CYSCREEN)
    Result = 0
  EndSelect
  
  ProcedureReturn Result
EndProcedure
Dann natürlich noch...

Code: Alles auswählen

SetWindowCallback(@Callback())
Bild
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Danke

Beitrag von Vermilion »

Danke, ich probiers mal aus :)
Antworten