3.21 DM_EventLoop
Diese Funktion startet die Verarbeitung des Dialogs. Dadurch wird der Benutzer in die Lage versetzt, mit dem Dialog zu arbeiten. Erst nach diesem Funktionsaufruf werden vom DM Ereignisse verarbeitet, denn diese Funktion übernimmt die Bearbeitung des Dialogs.
DM_Boolean DML_default DM_EXPORT DM_EventLoop
(
DM_Options options
)
Parameter
-> DM_Options options
Mit Hilfe dieses Parameters wird gesteuert, ob die Ereignisverarbeitung abgebrochen werden soll, wenn kein Ereignis mehr vorliegt oder ob die Bearbeitung bis zum Dialogende durchgeführt werden soll.
Option |
Bedeutung |
---|---|
0 |
Das ist der Normalfall. Der Dialog Manager soll die Verarbeitung aller Ereignisse übernehmen und erst beim Ende des Programms aus dieser Funktion zurückkommen. |
Mit Hilfe dieser Konstanten wird der Dialog Manager informiert, dass er nicht in eine passive Warteschleife im Fenstersystem gehen soll, wenn kein Ereignis anliegt. Er soll dann sofort zu der Anwendung zurückkommen, damit diese irgendwelche Aktionen ausführen kann. Danach muss von der Anwendung die Funktion DM_EventLoop für weitere Verarbeitungen wieder aufgerufen werden. |
|
Mit Hilfe dieser Konstanten wird der Dialog Manager informiert, dass er passiv auf ein Benutzerereignis im Fenstersystem warten kann. Nach dessen Verarbeitung soll er dann in die Anwendung zurückkommen, damit hier irgendwelche Aktionen durchgeführt werden können und anschließend wieder die Funktion DM_EventLoop aufgerufen werden kann. |
Rückgabewert
TRUE |
Die Ereignisverarbeitung wurde beendet da im Moment kein Ereignis mehr zur Verarbeitung ansteht; es sind aber noch Dialoge gestartet. |
FALSE |
Die Ereignisverarbeitung wurde beendet da das Dialogende erreicht worden ist (Standard). |
Beispiel
Übergabe der Verarbeitung an den Dialog Manager im Hauptprogramm:
int DML_c DM_CALLBACK AppMain __2(
(int, argc),
(char far * far *, argv))
{
DM_ID dialogID;
static char * dialogfile = "format.dlg";
DM_Initialize(&argc, argv, 0);
dialogID = DM_LoadDialog (dialogfile, 0);
if (!dialogID)
return(1);
(void) DM_BindCallBacks(funcmap, NFUNCS, dialogID, 0);
DM_StartDialog(dialogID, 0);
DM_EventLoop(0);
return (0);
}