SwordMaster Geschrieben 11. Februar 2008 Geschrieben 11. Februar 2008 Hallo Zusammen. Ich habe folgendes Problem Ich hab einen Ordner von Windows offen. (ein ganz normaler ordner, der dateien enthält). Ein Ordner kann ja in XP mehrere Ansichten haben. (Miniaturansicht, Kacheln, Symbole, Liste, Details). Ich möchte diese Ansicht ändern. z.B. von Kacheln in Symbole. Ich habe mittlerweile ein HWND auf das Ordnerfenster, und auch direkt auf das ListCtrl was die dateien anzeigt. Mein erster Versuch war es den Style mittels ModifyStyle( LVS_ICON, LVS_REPORT, 0 ); zu ändern. Der Erfolg hat sich in Grenzen gehalten. Ich kann zwar teilweise die Ansichten wechseln. (z.B. kann ich in "Detail Ansicht" wechseln. Aber nicht in die "Symbolansicht"). Zum Anderen liefert (GetStyle() & LVS_TYPEMASK) teilweise nicht die korrekten werte. und zeigt z.b. Symbolansicht als LVS_SMALLICON etc an. Auch im Kontextmenü ist der Hacken bei Ansichten nicht auf der neuen Ansicht. => Versuch 2. Ich habe versucht mit Spy++ (von Visual Studio 6.0) herauszufinden welche Nachricht ausgelöst wird, wenn ich im Kontextmenü die ansicht wechsle. Jedoch weiß ich nicht wonach ich ungefähr suchen muss. Könnt ihr mir evtl sagen wie ich die Ansichtn eines Ordnerfensters ändern kann? Zitieren
Klotzkopp Geschrieben 12. Februar 2008 Geschrieben 12. Februar 2008 Mein erster Versuch war es den Style mittels ModifyStyle( LVS_ICON, LVS_REPORT, 0 ); zu ändern.Du solltest auf jeden Fall als ersten Parameter LVS_TYPEMASK verwenden, damit du sicher alle Ansichtsflags auf Null setzt. Auch im Kontextmenü ist der Hacken bei Ansichten nicht auf der neuen Ansicht."Hacken" ist ein anderes Wort für Ferse, oder eine Tätigkeit, bei der man eine Axt benutzt. Meinst du vielleicht Haken? Ich habe versucht mit Spy++ (von Visual Studio 6.0) herauszufinden welche Nachricht ausgelöst wird, wenn ich im Kontextmenü die ansicht wechsle. Jedoch weiß ich nicht wonach ich ungefähr suchen muss.Der Menübefehl sollte eine WM_COMMAND-Nachricht auslösen, mit der Command ID im WPARAM und (vermutlich) 0 im LPARAM. Zitieren
SwordMaster Geschrieben 12. Februar 2008 Autor Geschrieben 12. Februar 2008 Du solltest auf jeden Fall als ersten Parameter LVS_TYPEMASK verwenden, damit du sicher alle Ansichtsflags auf Null setzt. Ich werds testen. Danke für den Tipp. "Hacken" ist ein anderes Wort für Ferse, oder eine Tätigkeit, bei der man eine Axt benutzt. Meinst du vielleicht Haken? . :floet: Der Menübefehl sollte eine WM_COMMAND-Nachricht auslösen, mit der Command ID im WPARAM und (vermutlich) 0 im LPARAM. Hät ich eignetlich auch vermutet gehabt. Hab aber keine WM_COMMAND gesehen. ich werds nochmal Testen. Kriegt direkt das ListCtrl die WM_COMMAND nachricht? Oder das übergeordnete fenster? Oder direkt das Oberste Fenster=Ordnerfenster? Gibt es eigneltich ein Programm wie Spy++ was die nachrichten protokolliert. Und diese auch erneut per "SendMessage" senden kann? Ich hab öfter mal ein paar Nachrichten wo ich nich weiß welche die richtige ist. In solchen fällen wäre es cool wenn man die Nachrichten einzeln erneut senden könnte, dann würde man schnell sehen welche nachricht das gewünschte ergebnis erzielt. Vielen Dank für die Schnelle Antwort. Gruss Stefan Zitieren
Klotzkopp Geschrieben 13. Februar 2008 Geschrieben 13. Februar 2008 Hät ich eignetlich auch vermutet gehabt. Hab aber keine WM_COMMAND gesehen. ich werds nochmal Testen. Kriegt direkt das ListCtrl die WM_COMMAND nachricht? Oder das übergeordnete fenster? Oder direkt das Oberste Fenster=Ordnerfenster?Ich hab gerade mal ein wenig rumgespielt. Das Hauptfenster (Class ExploreWClass) empfängt WM_COMMAND-Nachrichten, wenn man die Menübefehle auslöst. Die IDs sind bei mir: 28717 View > Thumbnails 28718 View > Tiles 28713 View > Icons 28715 View > List 28716 View > Details Zitieren
SwordMaster Geschrieben 13. Februar 2008 Autor Geschrieben 13. Februar 2008 Mann es funktioniert. Des ist genial! Vielen Dank! :uli P.S. mittlerweile weiß auch welches fenster das WM_COMMAND abkriegt wenn man das Kontextmenü verwendet. Es ist das 4te Parent Fenster. Class: SHELLDLL_DefView Aber über das Menü tu ich mich natürlich etwas leicher :-). Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.