Niet-modale dialoogvensters

Een niet-modaal dialoogvenster moet een pop-up venster met een systeemmenu, een titelbalk en een dunne rand; dat is, moet het dialoogvenster vak sjabloon de WS_POPUP, WS_CAPTION, WS_BORDER en WS_SYSMENU stijlen opgeven. Het systeem doet niet automatisch weergegeven in het dialoogvenster, tenzij de sjabloon de stijl van WS_VISIBLE geeft.

Een niet-modaal dialoogvenster een toepassing gemaakt met behulp van de functie CreateDialog of CreateDialogIndirect . CreateDialog vereist de naam of het id van een resource met een dialoogvenster vak sjabloon; CreateDialogIndirect vereist het handvat van een geheugen-object met een dialoogvenster vak sjabloon. Twee andere functies, CreateDialogParam en CreateDialogIndirectParam, ook maken niet-modale dialoogvensters; ze doorgeven een opgegeven parameter aan het dialoogvenster vak procedure wanneer het dialoogvenster is gemaakt.

CreateDialog en andere functies van de schepping terug een vensteringang voor het dialoogvenster. De toepassing en het dialoogvenster vak procedure kunt dit handvat beheren in het dialoogvenster. Bijvoorbeeld, als WS_VISIBLE niet is opgegeven in het dialoogvenster vak sjabloon, kunt de toepassing weergeven in het dialoogvenster door de vensteringang doorgeven aan de functie ShowWindow.

Een niet-modaal dialoogvenster schakelt het venster eigenaar noch berichten stuurt. Wanneer u het dialoogvenster maakt, het systeem maakt het het actieve venster, maar de gebruiker of de toepassing het actieve venster op elk gewenst moment kunt wijzigen. Als het dialoogvenster inactief geworden, blijft het boven het venster met de eigenaar in de Z-volgorde, zelfs als de eigenaar venster actief is.

De toepassing is verantwoordelijk voor het ophalen en verzenden invoer berichten naar het dialoogvenster. De meeste toepassingen gebruiken de hoofdberichtlus voor dit. Wilt dat de gebruiker naar en besturingselementen selecteren met het toetsenbord, echter, moet de toepassing de functie IsDialogMessage aanroepen. Zie voor meer informatie over deze functie, Dialoogvenster vak toetsenbord Interface.

Een niet-modaal dialoogvenster kan niet een waarde terugkeren naar de toepassing als een modaal dialoogvenster doet, maar de dialoogvenster vak procedure informatie naar de eigenaar venster sturen kan met behulp van de functie SendMessage.

Een toepassing moet vernietigen alle niet-modale dialoogvensters vůůr de beŽindiging. Het kan een niet-modaal dialoogvenster vernietigen met behulp van de functie DestroyWindow . In de meeste gevallen roept het dialoogvenster vak procedure DestroyWindow in reactie op gebruikersinput van de, zoals de knop Annuleren te klikken. Als de gebruiker nooit het dialoogvenster op deze manier sluit, moet de toepassing DestroyWindow oproepen.

DestroyWindow wordt ongeldig de vensteringang voor het dialoogvenster, zodat eventuele latere oproepen tot functies die gebruik de hendel foutwaarden retourneren. Om fouten te voorkomen, het liefst het dialoogvenster vak procedure de eigenaar aankondigen dat het dialoogvenster heeft verwoest. Veel toepassingen behouden een globale variabele met de greep voor het dialoogvenster. Wanneer het dialoogvenster vak procedure het dialoogvenster vernietigt, het ook de globale variabele ingesteld op NULL, die aangeeft dat het dialoogvenster niet langer geldig is.

Het dialoogvenster vak procedure moet niet de EndDialog functie aanroepen om te vernietigen een niet-modaal dialoogvenster.

Index