Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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?

Geschrieben
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.
Geschrieben
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

Geschrieben
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

Geschrieben

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 :-).

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...