Frage

Frage:

Wer weiß, wie das aktuelle Verzeichnis eines bereits laufenden Datei-Dialog ändern?

Details:

Ich habe einen benutzerdefinierten Datei-Dialog (ein eigenes Template mit zusätzlichen Steuerelemente hinzufügen), die auch alle die Validierung hat die bestehenden Kontrollen und Schaffung Tests ausgeschaltet (über den OPENFILE Flags).

Turning die Dinge off deaktiviert die eingebaute im Verhalten des Dialogs, die es bewirkt, dass der aktuell angezeigten Ordner, wenn der Benutzer einen Ordnernamen in der „Dateiname“ Combo-Box ändern und die Enter-Taste trifft.

Ich möchte, dass das Verhalten wieder hinzuzufügen. Ich kann erkennen, wenn dies über die Hook-Prozedur geschieht. Ich habe die OK-Taste bleibt verborgen, stellte sie den Beschleuniger aus und lege meine eigene „wählen Sie“ Taste auf der Steuerung. Dies bedeutet, dass das einzig Mal, wenn ich eine CDN_FILEOK Nachricht ist, wenn der Benutzer Treffer in dem Textfeld eingeben nach der Eingabe.

Ich kann aber nicht herausfinden, wie programmatisch dem Dialog sagen, das aktuelle Verzeichnis zu ändern.

Ich dachte, dass ich dies zu erreichen, könnte die Lage sein, durch eine Art von einer Botschaft an die SHELLDLL_DefView Steuerung im Fenster zu senden, aber ich habe keine Unterlagen über sie finden kann.

War es hilfreich?

Lösung 2

ich in der Lage war, um eine Arbeit zu verstehen.

Es stellt sich heraus, dass, wenn die Überprüfung ausgeschaltet ist, in einem Verzeichnisnamen eingeben, die in einem „\“ endet noch den Ordner ändern angezeigt wird, aber die Eingabe in einem Verzeichnisnamen, die in einem „\“ endet nicht wird nicht .

Spion Mit ++ konnte ich sehen, dass, wenn die Eingabetaste drücken wird eine WM_COMMAND-Nachricht an die gemeinsame Dialogsteuerung mit einem WParam Argumente, dessen Wort hallo Ordnung ist BN_CLICKED und niederwertigen Wort, dessen ID_OK gesendet wird.

Wenn ich die allgemeine Dialogunterklasse kann ich die Nachricht abfangen, den Text in dem Kombinationsfeld Dateinamen ändern, Weiterleiten der Nachricht bis zur ursprünglichen Unterklasse-Prozedur, und dann den Text ändern, danach zurück.

Es ist ein bisschen von Hack, aber es gibt mir das Verhalten, das ich aus dem Dialog will erhalten.

Andere Tipps

Ich bin der direkte Antwort nicht sicher, aber wenn Sie SPY haben ++ oder eine andere Meldung Snooping Programm, versuchen, die Nachrichten überprüft, die durch gehen, wenn Sie ein normales OPENFILE Dialog das Verzeichnis ändern. Dass Sie die Antwort dort aufzudecken (obwohl es auf die harte Tour ist).

Jemand anderes könnte die Antwort off-Hand nicht wissen, obwohl; Lassen Sie uns hoffen, dass sie es tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top