Wanneer gebruikt u een dialoogvenster

De meeste toepassingen dialoogvensters gebruiken om extra informatie voor opdrachten waarvoor invoer van de gebruiker vragen. Met behulp van een dialoogvenster is de enige aanbevolen manier om een toepassing te halen de input. Bijvoorbeeld, vereist de opdracht bestand openen de naam van een bestand te openen, zodat een toepassing een dialoogvenster gebruiken moet om de gebruiker voor de naam. In dergelijke gevallen maakt de toepassing het dialoogvenster wanneer de gebruiker de opdracht kiest en het dialoogvenster vernietigt onmiddellijk nadat de gebruiker de informatie verschaft.

Veel toepassingen ook dialoogvensters gebruiken om informatie of opties worden weergegeven wanneer de gebruiker in een ander venster werkt. Bijvoorbeeld, tekstverwerkingsprogramma's gebruiken vaak een dialoogvenster met een tekst-Zoek opdracht. Terwijl de toepassing gezocht naar de tekst, blijft het dialoogvenster op het scherm. De gebruiker kan vervolgens terugkeren naar het dialoogvenster en zoekt u hetzelfde woord opnieuw; of de gebruiker de vermelding in het dialoogvenster en zoekt een nieuw woord kunt wijzigen. Toepassingen dat dialoogvensters gebruiken op deze manier meestal maken wanneer de gebruiker een opdracht kiest en het blijven voor zo lang als de toepassing wordt uitgevoerd of totdat de gebruiker expliciet sluit u het dialoogvenster weergeven.

Ter ondersteuning van de verschillende manieren waarop toepassingen dialoogvensters gebruiken, de Win32 API biedt twee soorten dialoogvenster: modal en niet-modusgebonden. Een modaal dialoogvenster moet de gebruiker te verstrekken informatie of het dialoogvenster annuleren alvorens de toepassing te blijven. Toepassingen gebruiken modale dialoogvensters in combinatie met opdrachten waarvoor aanvullende informatie voordat ze kunnen gaan. Een niet-modaal dialoogvenster kan de gebruiker informatie verstrekken en terugkeren naar de vorige taak zonder het dialoogvenster te sluiten. Modale dialoogvensters zijn eenvoudiger te beheren dan niet-modaal dialoogvenster vakken omdat ze zijn gemaakt, hun taak uitvoeren, en zijn vernietigd door het aanroepen van een interne functie.

Om te maken ofwel een modaal of niet-modaal dialoogvenster, een toepassing moet leveren een dialoogvenster vak sjabloon om te beschrijven de dialoogvenster vak stijl en inhoud; de toepassing moet leveren ook een dialoogvenster vak procedure taken uit te voeren. Het dialoogvenster vak sjabloon is een binaire beschrijving van het dialoogvenster en de besturingselementen hierin. De ontwikkelaar kan maken deze sjabloon als een bron van het uitvoerbare bestand van de toepassing worden geladen, of in het geheugen gemaakt terwijl de toepassing wordt uitgevoerd. Het dialoogvenster vak procedure is een toepassing gedefinieerde callback functie die het systeem wordt gebeld wanneer het heeft Voer voor het dialoogvenster of de taken van het dialoogvenster uit te voeren. Hoewel een dialoogvenster vak procedure vergelijkbaar met een venster procedure is, hoeft het niet dezelfde verantwoordelijkheden.

Normaal gesproken wordt een toepassing gemaakt een dialoogvenster met behulp van de dialoogbox of de CreateDialog functie. DialogBox creŽert een modaal dialoogvenster; CreateDialog creŽert een niet-modaal dialoogvenster. Deze twee functies van het uitvoerbare bestand van de toepassing een dialoogvenster vak sjabloon laden en een pop-upvenster dat overeenkomt met de specificaties van de sjabloon maken. Er zijn andere functies die een dialoogvenster maken met behulp van sjablonen in geheugen; ze doorgeven extra informatie aan het dialoogvenster vak procedure als het dialoogvenster is gemaakt.

Dialoogvensters behoren meestal tot een vooraf gedefinieerde, exclusieve venster klasse. Het systeem gebruikt deze venster-klasse en haar overeenkomstige venster procedure voor beide modal en niet-modale dialoogvensters. Wanneer de functie wordt aangeroepen, het wordt gemaakt van het venster van het dialoogvenster, evenals de Vensters voor de besturingselementen in het dialoogvenster, dan stuurt geselecteerde berichten naar het dialoogvenster vak procedure. Terwijl het dialoogvenster zichtbaar is, beheert de vooraf gedefinieerde venster procedure alle berichten, afhandeling van sommige berichten en anderen te geven aan het dialoogvenster vak procedure zodat de procedure kunt uitvoeren. Toepassingen hebben geen directe toegang naar de vooraf gedefinieerde venster klasse of venster procedure, maar ze kunnen het dialoogvenster vak sjabloon en dialoogvenster vak procedure gebruiken om te wijzigen de stijl en de werking van een dialoogvenster.

Index