| |
|
|
|
Source wurde am 15.07.2007 aus qui MMJ-Quellcodesammlung (Dietmar Horn) dans qui Babyklappe sur XProfan.Com abgelegt:
Größenänderung de Steuerelementen dans temps réel
Im folgenden Beispiel wird qui Größenänderung eines Steuerelementes,
dans diesem le cas un Button, dans temps réel demonstriert. avec Veränderung qui Taille des Fensters
modifié sich aussi qui Taille des Buttons.
-Begin-----------------------------------------------------------------
-HeaderFiles---------------------------------------------------------
$H Windows.ph
$H Messages.ph
-Variables Declaration-----------------------------------------------
Déclarer Ende%, OldWndProc&, hButton%
-CallBack Routine----------------------------------------------------
Proc ChangeControl
Paramètres hWnd&, Message&, wParam&, lParam&
Déclarer btnHeight&
Si Message& = ~WM_SIZE
-Abfrage, avec cela Button pas kleiner 16 Pixel Hoehe------------
Si @Height(%hWnd) / 5 < 16
btnHeight& = 16
D'autre
btnHeight& = @Height(%hWnd) / 5
EndIf
-Groesse des Buttons aendern-----------------------------------
SetWindowPos hButton%, 10, 34 - @Width(%hWnd) - 20, btnHeight&
EndIf
Retour ~CallWindowProc(OldWndProc&, hWnd&, Message&,
wParam&, lParam&)
ENDPROC
-Main----------------------------------------------------------------
-Erweitertes MessageHandling débrancher----------------------------
Set(FastMode, 1)
-la fenêtre oeffnen et GUI aufbauen----------------------------------
Fenêtre 0, 0 - 640, 480
Titre de la fenêtre Größenänderung de Steuerelementen dans temps réel
-Hintergrundfarbe des Fensters setzten---------------------------
Déclarer Color&, Red%, Green%, Blue%
Color& = ~GetSysColor(~COLOR_3DFACE)
Red% = @GetRValue(Color&)
Green% = @GetGValue(Color&)
Blue% = @GetBValue(Color&)
Cls @RGB(Red%, Green%, Blue%)
-----------------------------------------------------------------
@Créer(Text, %hWnd, Ändere qui Taille cet Fensters, 10,
10, 250, 20)
hButton% = @Créer(Button, %hWnd, Ende, 10, 34,
@Width(%hWnd) - 20, @Height(%hWnd) / 5)
-ProgramMainRoutine avec CallBack détourner sur eigene---------------
OldWndProc& = ~GetWindowLong(%hWnd, ~GWL_WNDPROC)
~SetWindowLong(%hWnd, ~GWL_WNDPROC, @ProcAddr(ChangeControl, 4))
-Dialog-Boucle---------------------------------------------------
Claire Ende%
WhileNot Ende%
WaitInput
Si %Key = 2
Ende% = 1
ElseIf @Clicked(hButton%)
Ende% = 1
EndIf
Endwhile
-Urspruengliche ProgramMainRoutine wieder herstellen---------------
~SetWindowLong(%hWnd, ~GWL_WNDPROC, OldWndProc&)
-Fin-------------------------------------------------------------------
Fin
|
|
|
| |
|
|