DialogFunc Prototype
Syntax
Function dialogfunc(DlgItem$, Action%, SuppValue?) _
As Boolean
Select Case Action%
Case 1 ' Dialog box initialization
...
Case 2 ' Value changing or button pressed
...
Case 3 ' TextBox or ComboBox text changed
...
Case 4 ' Focus changed
...
Case 5 ' Idle
...
Case 6 ' Function key
...
End Select
End Function
Group
Dialog Function
Description
A dialogfunc implements the dynamic dialog capabilities.
Parameters
|
Description
|
DlgItem
|
This string value is the name of the user dialog item's field.
|
Action
|
This numeric value indicates what action the dialog function is being
asked to do.
|
SuppValue
|
This numeric value provides additional information for some actions.
|
Action
|
Description
|
1
|
Dialog box initialization.
DlgItem is a null string.
SuppValue is the dialog's window handle.
Set dialogfunc = True to terminate the dialog.
|
2
|
CheckBox, DropListBox, ListBox,
MultiListBox or OptionGroup:
DlgItem's value has changed.
SuppValue is the new value.
CancelButton, OKButton or PushButton:
DlgItem's button was pushed.
SuppValue is meaningless.
Set dialogfunc = True to prevent the dialog from
closing.
|
3
|
ComboBox or TextBox:
DlgItem's text changed and losing focus.
SuppValue is the number of characters.
|
4
|
Item DlgItem is gaining focus.
SuppValue is the item that is losing focus.
(The first item is 0, second is 1, etc.)
|
5
|
Idle processing.
DlgItem is a null string.
SuppValue is zero.
Set dialogfunc = True to continue receiving
idle actions.
The idle action is called as often as possible.
Use
Wait .1
to reduce the number of idle calls to 10 per second.
|
6
|
Function key (F1-F24) was pressed.
DlgItem has the focus.
SuppValue is the function key number and the shift/control/alt
key state.
Regular function keys range from 1 to 24.
Shift function keys have &H100 added.
Control function keys have &H200 added.
Alt function keys have &H400 added.
(Alt-F4 closes the dialog and is never passed to the Dialog Function.)
|
See Also
Begin Dialog
Sub Main
Begin Dialog UserDialog 200,120,.DialogFunc
Text 10,10,180,15,"Please push the OK button"
TextBox 10,40,180,15,.Text
OKButton 30,90,60,20
PushButton 110,90,60,20,"&Hello"
End Dialog
Dim dlg As UserDialog
Debug.Print Dialog(dlg)
End Sub
Function DialogFunc(DlgItem$, Action%, SuppValue?) As Boolean
Debug.Print "Action="; Action%
If Action% <> 1 And Action% <> 5 Then
Debug.Print DlgItem$'; "="""; DlgText(DlgItem$); """"
End If
Debug.Print "SuppValue="; SuppValue?
Select Case Action%
Case 1 ' Dialog box initialization
Beep
Case 2 ' Value changing or button pressed
If DlgItem$ = "Hello" Then
MsgBox "Hello"
DialogFunc = True 'do not exit the dialog
End If
Case 4 ' Focus changed
Debug.Print "DlgFocus="""; DlgFocus(); """"
Case 6 ' Function key
If SuppValue? And &H100 Then Debug.Print "Shift-";
If SuppValue? And &H200 Then Debug.Print "Ctrl-";
If SuppValue? And &H400 Then Debug.Print "Alt-";
Debug.Print "F" & (SuppValue And &HFF)
End Select
End Function