Français
Source/ Codesnippets

Fenstergröße Begrenzen, MINMAXINFO, WM_GETMINMAXINFO

 

Georg
Teles
avec cela peut sich qui Fenstergröße pour Belieben begrenzen - qui Message zum Changement qui Position / Taille des Fensters wird aufgefangen, modifié & à cela la fenêtre versendet
'###############################################
'#                                             #
'#  Fenstergröße begrenzen mittels MINMAXINFO  #
'#                                             #
'#          Georg Teles am 27.12.2018          #
'#                                             #
'###############################################
 $H structs.ph
 $H windows.ph
 $H messages.ph
Déclarer OldWndProc&, ico&, e%
'-------------# Definitionen
Def GetWindowLong(2)!"User32","GetWindowLongA"
Def SetWindowLong(3)!"User32","SetWindowLongA"
Def CallWindowProc(5)!"User32","CallWindowProcA"
Def RtlMoveMemory(3)!"KERNEL32","RtlMoveMemory"
'-------------# Strukturen
'reserviert, aucun Verwendung
Struct ptReserved = ptReservedX&, ptReservedY&
'maximale Breite (x) & Hauteur (y) beim Maximierten la fenêtre
Struct ptMaxSize = ptMaxSizeX&, ptMaxSizeY&
'Position à gauche (x) & dessus (y) beim Maximierten la fenêtre
Struct ptMaxPosition = ptMaxPositionX&, ptMaxPositionY&
'kleinste Breite (x) & Hauteur (y) beim agrandir/Verkleindern des Fensters
Struct ptMinTrackSize = ptMinTrackSizeX&, ptMinTrackSizeY&
'größte Breite (x) & Hauteur (y) beim agrandir/Verkleindern des Fensters
Struct ptMaxTrackSize = ptMaxTrackSizeX&, ptMaxTrackSizeY&
'MINMAXINFO Struktur
Struct MinMax = ptReserved, ptMaxSize, ptMaxPosition, ptMinTrackSize, ptMaxTrackSize
'Variable pour MINMAXINFO
Déclarer MMI#
Faible MMI#, MinMax
'-------------# CallBack Routine

Proc WindowProc

    Paramètres hWnd&, Message&, wParam&, lParam&
    ' alternativ dans qui Boucle régulariser
    'Si Message& = ~WM_KEYFIRST ' TASTEN auswertung
    'Cas WParam& = 27:~PostQuitMessage(0) 'zB %Key = 27 pour ESC
    'Endif

    Si Message& = ~WM_GETMINMAXINFO' Message auffangen

        ' Pointer lParam auffangen et MMI füllen
        RtlMoveMemory(MMI#, lParam&, SizeOf(MMI#))
        ' Werte pour Belieben anpassen
        '-------------# Alternative 1

        With MMI#

            .ptMinTrackSizeX& = 355
            .ptMinTrackSizeY& = 282
            .ptMaxTrackSizex& = 500
            .ptMaxTrackSizey& = 500

        Endwith

        '-------------# Alternative 2
        'MMI#.ptMinTrackSizeX& = 355
        'MMI#.ptMinTrackSizeY& = 282
        'MMI#.ptMaxTrackSizex& = 500
        'MMI#.ptMaxTrackSizey& = 500
        ' MMI dem lParam Pointer wieder zuweisen
        RtlMoveMemory(lParam&, MMI#, SizeOf(MMI#))

    EndIf

    ' alternativ dans qui Boucle régulariser
    'Si Message& = ~wm_Destroy
    '  ~PostQuitMessage(0)
    'Endif
    Retour CallWindowProc(OldWndProc&, hWnd&, Message&, wParam&, lParam&)

ENDPROC

'-------------# Programme
Set("Fastmode",1)
Set("TrueColor",1)
Windowtitle "Fenstergröße Begrenzen"
Fenêtre 100,100 - 355,282
ico& = Créer("hIcon",Par$(0),0)' Icon erwünscht ?
SendMessage(%HWnd,$80,1,ico&)' Icon mettons
SetWindowLong(%HWnd,-16,$92CE0000)' passenden Style choisir
OldWndProc& = GetWindowLong(%hWnd, -4)' original WndProc Sauver
SetWindowLong(%hWnd, -4, ProcAddr("WindowProc",4))' WindowProc zuweisen

WhileNot e%

    Waitinput

    Si %Key = 27

        Inc e%

    ElseIf %Key = 2

        Inc e%

    EndIf

Endwhile

SetWindowLong(%hWnd, -4, OldWndProc&)' original WndProc wiederherstellen
DeleteObject ico&
DisPose MMI#

Grüße Georg
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

27.12.2018  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

2.644 Views

Untitledvor 0 min.
Normann Strübli03.02.2023
Sven Bader24.02.2021
Georg Teles30.12.2020
N.Art18.11.2020
plus...

Themeninformationen

cet Thema hat 1 participant:

Georg Teles (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie