| |
|
|
| KompilierenMarkierenSeparierenSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
System-Menü erweitern (2)
-Begin-----------------------------------------------------------------
-HeaderFiles---------------------------------------------------------
$H Windows.ph
$H Messages.ph
-Variables Declaration-----------------------------------------------
Declare Ende%, OldWndProc&, hButton%
-CallBack Routine----------------------------------------------------
Proc SystemMenu
Parameters hWnd&, Message&, wParam&, lParam&
If Message& = ~WM_SYSCOMMAND
If wParam& = 5000
@MessageBox(Test für CallBack, Über..., 64)
EndIf
EndIf
Return ~CallWindowProc(OldWndProc&, hWnd&, Message&,
wParam&, lParam&)
EndProc
-Main----------------------------------------------------------------
-Erweitertes MessageHandling abschalten----------------------------
Set(FastMode, 1)
-Fenster oeffnen und GUI aufbauen----------------------------------
Window 0, 0 - 640, 480
hButton% = @Create(Button, %hWnd, Ende, 10, 10, 100, 24)
-SystemMenu erweitern----------------------------------------------
~AppendMenu(~GetSystemMenu(%hWnd, 0), ~MFT_SEPARATOR, 0, 0)
~AppendMenu(~GetSystemMenu(%hWnd, 0), ~MFT_STRING, 5000,
Über...)
-ProgramMainRoutine mit CallBack umleiten auf eigene---------------
OldWndProc& = ~GetWindowLong(%hWnd, ~GWL_WNDPROC)
~SetWindowLong(%hWnd, ~GWL_WNDPROC, @ProcAddr(SystemMenu, 4))
-Dialog-Schleife---------------------------------------------------
Clear Ende%
WhileNot Ende%
WaitInput
If %Key = 2
Ende% = 1
ElseIf @Clicked(hButton%)
Ende% = 1
EndIf
EndWhile
-Urspruengliche ProgramMainRoutine wieder herstellen---------------
~SetWindowLong(%hWnd, ~GWL_WNDPROC, OldWndProc&)
-End-------------------------------------------------------------------
End
|
|
|
| |
|
|