Verkenner-stijl haak Procedures

U kunt een Verkenner-stijl Open of Opslaan als het dialoogvenster aanpassen door middel van een haak procedure, een aangepaste sjabloon, of beide. Als u een haak procedure voorzien in een dialoogvenster Verkenner-stijl, wordt een dialoogvenster dat een kind van het dialoogvenster standaard is gemaakt. De haak-procedure treedt op als het dialoogvenster procedure voor het dialoogvenster kind. Dit dialoogvenster kind is gebaseerd op de aangepaste sjabloon, of op een standaardsjabloon als er geen is opgegeven. Voor meer informatie, Zie Verkenner-stijl aangepaste sjablonen.

Opdat een procedure haak voor een dialoogvenster Verkenner-stijl Open of Opslaan als , de NAAMOPENBESTAND -structuur te gebruiken wanneer u het dialoogvenster maakt. Instellen van de OFN_ENABLEHOOK en OFN_EXPLORER vlaggen in de vlaggen lid en het adres van een OFNHookProc haak procedure in de lpfnHook lid opgeven. Als u een haak-procedure en de OFN_EXPLORER vlag weglaat, moet u een OFNHookProcOldStyle haak procedure en u krijgt de oude-stijl gebruikersinterface. Voor meer informatie, Zie Aanpassen van oude-stijl dialoogvensters.

Een Verkenner-stijl haak procedure ontvangt een verscheidenheid van berichten terwijl het dialoogvenster geopend is. Deze omvatten de volgende:

Daarnaast is er een aantal berichten dat u naar een Verkenner-stijl dialoogvenster verzenden kunt om informatie te krijgen of om te controleren de werking en vormgeving van het dialoogvenster.

Als u een haak procedure voorzien in een dialoogvenster Verkenner-stijl, maakt de standaard dialoogvenster vak procedure een kind dialoogvenster wanneer het dialoogvenster verstekprocedure haar boodschap WM_INITDIALOG wordt verwerkt. De haak-procedure treedt op als het dialoogvenster procedure voor het dialoogvenster kind. Op dit moment ontvangt de haak procedure eigen WM_INITDIALOG-bericht met de lParam parameter ingesteld op het adres van de NAAMOPENBESTAND structuur gebruikt voor het initialiseren van het dialoogvenster. Nadat het dialoogvenster kind verwerkt een eigen bericht WM_INITDIALOG is, beweegt de verstekprocedure dialoogvenster de standaardbesturingselementen, indien nodig, om ruimte voor de eventuele extra besturingselementen van het dialoogvenster kind te maken. De verstekprocedure dialoogvenster stuurt het bericht CDN_INITDONE naar de haak-procedure.

De haak procedure ontvangt WM_NOTIFY meldingen die acties die worden ondernomen door de gebruiker in het dialoogvenster aangeeft. Sommige van deze berichten kunt u om het te besturen in het dialoogvenster. Bijvoorbeeld, ontvangt de haak procedure het CDN_FILEOK bericht wanneer de gebruiker een bestandsnaam kiest en klikt op de knop OK . In antwoord op dit bericht, de haak procedure de SetWindowLong functie kunt de geselecteerde naam te verwerpen en het dialoogvenster open te blijven dwingen.

De parameter lParam voor elk WM_NOTIFY bericht is een aanwijzer naar een OFNOTIFY structuur die de actie definieert. Lid van de code in de header voor de OFNOTIFY structuur bevat een van de volgende berichtgevingscodes.

CDN_FILEOK De gebruiker op de knop OK klikt; het dialoogvenster is ongeveer om te sluiten.
CDN_FOLDERCHANGE De gebruiker opent een nieuwe map of directory.
CDN_HELP De gebruiker heeft geklikt op de knop Help.
CDN_INITDONE Het systeem klaar is met initialiseren het dialoogvenster, en in het dialoogvenster het bericht WM_INITDIALOG verwerking is voltooid. Ook, het systeem klaar is met het rangschikken van besturingselementen in het dialoogvenster gemeenschappelijke ruimte te maken voor de besturingselementen van het dialoogvenster kind (indien aanwezig).
CDN_SELCHANGE De gebruiker heeft geselecteerd een nieuw bestand of map in de lijst met bestanden.
CDN_SHAREVIOLATION Het dialoogvenster gemeenschappelijke ondervonden een delen schending op het bestand over te worden geretourneerd.
CDN_TYPECHANGE De gebruiker geselecteerd een nieuw bestandstype uit de lijst met bestandstypen.

Deze berichten WM_NOTIFY vervangt de FILEOKSTRING, LBSELCHSTRING, SHAREVISTRING, en HELPMSGSTRING geregistreerde berichten die worden gebruikt door eerdere versies van de dialoogvensters openen en Opslaan als . Echter de haak procedure ook de achterhaalde bericht ontvangt na het WM_NOTIFY bericht als de verwerking WM_NOTIFY geen SetWindowLong gebruikt een niet-nulzijnde DWL_MSGRESULT waarde instellen.

Voor het ophalen van informatie over de status van het dialoogvenster of om te controleren de werking en vormgeving van het dialoogvenster, kan de haak procedure de volgende berichten sturen naar het dialoogvenster.

CDM_GETFILEPATH Het pad en de bestandsnaam van het geselecteerde bestand opgehaald.
CDM_GETFOLDERIDLIST Haalt de item-id lijst correspondeert met de huidige map dat het dialoogvenster open heeft. Zie voor meer informatie over item-id lijsten, Item-id en id lijsten.
CDM_GETFOLDERPATH Haalt het pad van de huidige map of directory voor het dialoogvenster.
CDM_GETSPEC Haalt de bestandsnaam (niet met inbegrip van het pad) van het bestand dat is geselecteerd in het dialoogvenster.
CDM_HIDECONTROL Hiermee verbergt u het opgegeven besturingselement.
CDM_SETCONTROLTEXT Hiermee stelt u de tekst in het opgegeven besturingselement.
CDM_SETDEFEXT Hiermee stelt u de standaardextensie voor de bestandsnaam van het dialoogvenster.

Index