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?
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.
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
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
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 :-).
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden