Die WM_INITDIALOG-Meldung

Das System wird nicht senden einen WM_CREATE -Nachricht auf die Dialogfeldprozedur. Stattdessen sendet es eine WM_INITDIALOG -Meldung, wenn sie das Dialogfeld und alle Steuerelemente erzeugt, aber bevor das Dialogfeld angezeigt. Die Prozedur durchführen Initialisierungen benötigt, um sicherzustellen, dass das Dialogfeld die aktuellen Einstellungen der Befehl oder Vorgang zugeordnet zeigt. Beispielsweise wenn ein Dialogfeld ein Steuerelement zeigen das aktuelle Laufwerk und Verzeichnis enthält, muss das Verfahren bestimmen das aktuelle Laufwerk und Verzeichnis und legen Sie das Steuerelement auf den Wert.

Das Verfahren kann Steuerelemente initialisieren, mithilfe von Funktionen wie z. B. Einfügen und CheckDlgButton. Da Steuerelemente Windows sind, kann das Verfahren auch manipulieren mit Fenster-Management-Funktionen wie z. B. EnableWindow und SetFocus. Die Prozedur kann das Fensterhandle für ein Steuerelement abrufen, mithilfe der Funktion GetDlgItem.

Das Dialogfeld Feld Verfahren kann die Inhalte, Zustand und Position eines beliebigen Steuerelements nach Bedarf ändern. In einem Dialogfeld, das ein Listenfeld Dateinamen und eine Schaltfläche "Öffnen" enthält, kann das Verfahren beispielsweise die Schaltfläche Öffnen deaktivieren, bis der Benutzer eine Datei aus der Liste auswählt. In diesem Beispiel das Dialogfeld Feld Vorlage gibt den WS_DISABLED Stil für die Schaltfläche öffnen, und das System automatisch die Schaltfläche deaktiviert, wenn Sie es erstellen. Wenn die Dialogfeldprozedur empfängt eine Benachrichtigung aus dem Listenfeld anzeigt, dass der Benutzer eine Datei ausgewählt hat, die Prozedur ruft die EnableWindow Funktion aktivieren Sie die Schaltfläche Öffnen.

Um ein benutzerdefiniertes Symbol auf der Titelleiste des Dialogfelds angezeigt werden, kann Ihre WM_INITDIALOG-Ereignishandler die WM_SETICON das Dialogfeld Nachricht.

Wenn die Anwendung das Dialogfeld erstellt mithilfe einer der Funktionen DialogBoxParam, DialogBoxIndirectParam, CreateDialogParamoder CreateDialogIndirectParam, enthält der lParam -Parameter für die WM_INITDIALOG-Meldung den zusätzlichen Parameter an die Funktion übergeben. Anwendungen verwenden in der Regel diese zusätzlichen Parameter die Adresse des zusätzliche Informationen an die Dialogfeldprozedur übergeben, aber die Dialogfeldprozedur muss die Bedeutung des Parameters bestimmen. Wenn die Anwendung einer anderen Funktion verwendet, um das Dialogfeld zu erstellen, setzt das System den lParam -Parameter auf NULL.

Vor der Rückgabe aus der WM_INITDIALOG -Meldung, sollte die Prozedur bestimmen, ob es für ein bestimmtes Steuerelement den Eingabefokus festzulegen. Wenn die Dialogfeldprozedur TRUE zurückgibt, setzt das System automatisch den Eingabefokus auf das Steuerelement, dessen Fensterhandle in der wParam -Parameter ist. Wenn das Steuerelement den Standardfokus erhält nicht geeignet ist, können sie den Fokus auf das Steuerelement entsprechende festlegen, mit die SetFocus -Funktion. Wenn die Prozedur den Eingabefokus legt, muss FALSE in verhindern, dass das System Festlegen des Fokus standardmäßig zurückgegeben werden. Das Steuerelement erhält die Standard Eingabe Fokus ist immer das erste Steuerelement in die Vorlage, die angezeigt wird nicht deaktiviert, gegeben und hat den WS_TABSTOP Stil. Wenn kein solches Steuerelement vorhanden ist, setzt das System den Standard-Eingabefokus auf das erste Steuerelement in die Vorlage.

Index