[WinAPI] Dialog-Terminologie
Verfasst: 15.06.2013, 23:22
Ich notiere hier kurz, was ich zu Windows’ Terminologie bezüglich von Dialogen herausgefunden habe. Also:
- Dialog Box / Dialog: Ein Fenster, das einem anderen Fenster (meist dem Hauptfenster der Anwendung) untergeordnet ist, und mit einem Benutzer interagiert. Gute Beispiele findet man bei Dialog Boxes im MSDN. Obwohl die MSDN einen riesigen Satz an Funktionalität extra für Dialoge anbietet, scheinen sie letzten Endes als „normale“ Fenster realisiert – und nicht im Kernel verankert – zu sein.
- Control: Ein Objekt innerhalb eines Dialogs – z.B. ein Knopf oder ein Eingabefeld. Formal sind sogar die Texte, die dort stehen, Controls. Jedes Control ist als eigenes Fenster realisiert, das üblicherweise dem Dialog-Fenster untergeordnet ist.
- Item: Historisches Alias für Control. So ziemlich alle Funktionen, die mit Dialogen arbeiten, sind so benannt (z.B. GetDlgItemText()); die MSDN spricht aber in allen Erklärungen nur von Controls. Item bezeichnet heute wohl nur noch die Einträge von Menüs.
- modal Dialog: Das Programm kann nicht fortgesetzt werden bevor der Dialog abgearbeitet ist. Also die typische Fehlermeldung, die Ping macht, wenn man woanders klickt, und unbedingt erst weggeklickt werden muss.
- modeless Dialog: Dialog und Programm laufen nebenläufig weiter. (Sie sehen für den Benutzer nebenläufig aus; tatsächlich werden sie aber meist im selben Thread berechnet.)
- Dialog Procedure: Die Nachrichtenverarbeitung des Dialogs. Ähnlich der Hauptschleife jedes Fensters. Der Kniff ist: Da alle Dialoge gemeinsame Eigenschaften haben, und einfach zu schreiben sein sollen, verarbeitet die Dialogprozedur nur anpassbare Eigenschaften. Eigenschaften, die allen Dialogen gemeinsam sind, werden in der vordefinierten Fensterklasse des Dialogfensters verarbeitet, von dem aus die Dialogprozedur gefüttert wird. Daraus ergeben sich die Unterschiede (z.B. beim Rückgabewert).
- Dialog Message: Nachrichten, nicht von Windows selber kommen, sondern die die vorgefertigte Fensterprozedur des Dialogfensters extra für Dialoge an die Dialogprozeduren sendet (bspw. beim Navigieren durch Controls via TAB-Taste).
- Notification: Nachrichten, die der Dialog an das übergeordnete Fenster zurückgeschickt. So weit bin ich aber noch nicht.