| |
|
|
|
Source wurde al 15.07.2007 de el MMJ-Quellcodesammlung (Dietmar Horn) en el Babyklappe en XProfan.Com abgelegt:
Größenänderung de Steuerelementen en Echtzeit
Im folgenden Ejemplo se el Größenänderung uno Steuerelementes,
en diesem Fall una Button, en Echtzeit demonstriert. Mit Veränderung el Größe des Fensters
verändert se auch el Größe des Buttons.
-Begin-----------------------------------------------------------------
-HeaderFiles---------------------------------------------------------
$H Windows.ph
$H Messages.ph
-Variables Declaration-----------------------------------------------
Declarar Ende%, OldWndProc&, hButton%
-CallBack Rutina----------------------------------------------------
Proc ChangeControl
Parámetros hWnd&, Message&, wParam&, lParam&
Declarar btnHeight&
If Message& = ~WM_SIZE
-Abfrage, así Button no kleiner 16 Pixel Hoehe------------
If @Height(%hWnd) / 5 < 16
btnHeight& = 16
Más
btnHeight& = @Height(%hWnd) / 5
EndIf
-Groesse des Buttons aendern-----------------------------------
SetWindowPos hButton%, 10, 34 - @Width(%hWnd) - 20, btnHeight&
EndIf
Volver ~CallWindowProc(OldWndProc&, hWnd&, Message&,
wParam&, lParam&)
ENDPROC
-Main----------------------------------------------------------------
-Erweitertes MessageHandling abschalten----------------------------
Conjunto(FastMode, 1)
-Ventana oeffnen y GUI aufbauen----------------------------------
Ventana 0, 0 - 640, 480
Título de la ventana Größenänderung de Steuerelementen en Echtzeit
-Color de fondo des Fensters setzten---------------------------
Declarar Color&, Red%, Green%, Blue%
Color& = ~GetSysColor(~COLOR_3DFACE)
Red% = @GetRValue(Color&)
Green% = @GetGValue(Color&)
Blue% = @GetBValue(Color&)
Cls @RGB(Red%, Green%, Blue%)
-----------------------------------------------------------------
@Crear(Texto, %hWnd, Ändere el Größe dieses Fensters, 10,
10, 250, 20)
hButton% = @Crear(Button, %hWnd, Ende, 10, 34,
@Width(%hWnd) - 20, @Height(%hWnd) / 5)
-ProgramMainRoutine con CallBack umleiten en propio---------------
OldWndProc& = ~GetWindowLong(%hWnd, ~GWL_WNDPROC)
~SetWindowLong(%hWnd, ~GWL_WNDPROC, @ProcAddr(ChangeControl, 4))
-Diálogo-Bucle---------------------------------------------------
Claro Ende%
Sinestar encargado Ende%
WaitInput
If %Key = 2
Ende% = 1
ElseIf @Clicked(hButton%)
Ende% = 1
EndIf
EndWhile
-Urspruengliche ProgramMainRoutine otra vez herstellen---------------
~SetWindowLong(%hWnd, ~GWL_WNDPROC, OldWndProc&)
-End-------------------------------------------------------------------
End
|
|
|
| |
|
|