FDialogBox

PropertyDatentyp(Read/Write)Hinweise
CaptionString (R/W) Set/Get den Fenstertitel
ColorUInteger (R/W) Hintergrundfarbe des Fenster ; voreingestellt ist weiss
HandleHWND (R) Handle des Fenster (nur lesen !)
SUB/Function ArgumenteHinweis
Function Create (ByVal hParent As HWND,
sCaption As String,
ByVal w As Integer,
ByVal h As Integer )
As Integer
Handle des übergeordneten Fenster
Fenstertitel
Weite
Höhe
Rückgabewert
Sub Close (ByVal retVal As Integer) Schliesst die Dialogbox und übergibt einen Integer an die Function Create
Event SUBArgumenteHinweis
onInitdialog(ByVal hWnd As HWND)Hier werden die Controls eingebunden
onShow(ByVal w As UInteger)TRUE Fenster ist sichtbar
FALSE Fenster ist versteckt
onSize(ByVal w As Integer,
ByVal h As Integer,
ByVal flag As Integer)
w = weite des Clientbereiches
h = Höhe des Clientbereiches
Kann SIZE_MAXIMIZED,SIZE_MINIMIZED oder SIZE_RESTORED sein
onPaint(ByVal hDC As HDC) HDC des Fenster
onLbuttondown(ByVal x As Integer,
ByVal y As Integer,
ByVal flag As Integer)
x - Position im Clientbereich
y - Position im Clientbereich
ob und welcher virtual keys ist gedrückt(z.B.MK_CONTROL,MK_SHIFT)
onLbuttonup(ByVal x As Integer,
ByVal y As Integer,
ByVal flag As Integer)
x - Position im Clientbereich
y - Position im Clientbereich
ob und welcher virtual keys ist gedrückt(z.B.MK_CONTROL,MK_SHIFT)
onMousemove(ByVal x As Integer,
ByVal y As Integer,
ByVal flag As Integer)
x - Position im Clientbereich
y - Position im Clientbereich
ob und welcher virtual keys ist gedrückt(z.B.MK_CONTROL,MK_SHIFT)
onKeyDown(nKey AS Integer,
lKeyStatus As Integer)
Virtualkey Code
kann VK_SHIFT, VK_CONTROL oder VK_MENU (Alt) sein
onKeyUp(nKey AS Integer,
lKeyStatus As Integer)
Virtualkey Code
kann VK_SHIFT, VK_CONTROL oder VK_MENU (Alt) sein
onKeyChar(nKey AS Integer,
lKeyStatus As Integer)
Virtualkey Code
kann VK_SHIFT, VK_CONTROL oder VK_MENU (Alt) sein
onClosekeine Die Form wird geschlossen
onCommand(ByVal notify As Integer,
ByVal ID As Integer,
ByVal ctl As HWND)
Notification Code
ID des Control
Handle des Control von dem die Botschaft kommt

Die Dialogbox wird immer im Elternfenster zentriert, deshalb braucht Left und Top nicht angegeben werden

Anders als bei Form müssen die Controls in OnInitdialog erstellt werden, da Dialog Create erst nach Schließen der Dialogbox mit dem von Close übergebenen Wert zurück kehrt.

Beispiel:
                 

    'Wenn das Menu About eine Dialogbox zeigt
    '------------------------
    Dim Shared As FDialogBox PTR pDlgBox1
    Dim Shared As FPanel PTR pDlgPanel1
    Dim Shared As FButton PTR pDlgButton1
    
    Sub Button_onClick
    	pDlgBox1->Close(0) ' Wert wird von pDlgBox1->Create zurückgegeben
    End Sub
    
    Sub dlg1_OnInitdialog(ByVal hWnd As HWND)
    	' alle Control müssen hier erstellt werden
    	pDlgPanel1 	= New FPanel 
    	pDlgButton1 = New FButton 
    	
    	pDlgPanel1->Create(hWnd,10,10,276,140)
    	
    	pDlgPanel1->Caption =Chr(13,10)+ " Dialogbox mit FDialogBox " +Chr(13,10)+" hat kein Menü und hat immer ein Dialog-Rahmen"
    	pDlgPanel1->Border=1
    	pDlgPanel1->TextAlign=4 ' mehrzeilig mitte
    	
    	pDlgButton1->Create(hWnd,"OK",100,180,100,26)
    	pDlgButton1->onClick = @Button_onClick
    			
    End Sub
    
    ' Das könnte z.B. Event-Sub vom Menu des Hauptfensters sein
    '---------------------------------------------------------------
    Sub menu_About
    	
    	Dim As Integer retVal
    	pDlgBox1 = New FDialogBox
    	
    	pDlgBox1->Color = &Hefcb90                 ' Anders wie bei normaler Form
    	pDlgBox1->OnInitdialog=@dlg1_OnInitdialog  ' Eigenschaften vor!! Create
    	
    	retVal = pDlgBox1->Create(Form1.Handle,"Info",300,250)
    	
    	Delete pDlgBox1	 ' Speicher bereinigen
    	Delete pDlgPanel1
    	Delete pDlgButton1
    	
    End Sub