Ich versuche, ein Rechtsklick-Hintergrundmenü für einen Ordner anzuzeigen.
Das Menü wird angezeigt, aber es gibt die folgenden Probleme:
< ol>
[*]Wenn ich den Pfad zum Ordner als C:\Benutzer\Benutzername\Desktop\Folder\Child spezifiziere, erhalte ich ein Menü nicht für diesen Ordner, sondern für seinen übergeordneten Ordner, für C :\Benutzer\Benutzername\Desktop\Ordner (dies ist zu sehen wenn Sie den Punkt „Eigenschaften“ ausführen, siehe: „Standort“ in Eigenschaften)
[*]Trotz Aufruf von HandleMenuMsg und HandleMenuMsg2 sind die Untermenüs für „Give Zugriff auf“ werden nicht angezeigt
[*]Außerdem funktionieren Menüelemente, die von Drittanbieterprogrammen installiert wurden, nicht (z. B. „Git Gui Here“ , „Git Bash Here“, ...)
Um ein Rechtsklick-Hintergrundmenü für einen Ordner zu erhalten, verwende ich IShellFolder2::CreateViewObject< /p>
Sie können meinen Code unten sehen. Um diesen Code auszuführen und das Menü anzuzeigen, müssen Sie Folgendes tun:
Ersetzen Sie den filePath-Wert durch den Pfad zum Ordner
Drücken Sie die Schaltfläche „Kontextmenü“, um das Kontextmenü anzuzeigen
Ich versuche, ein Rechtsklick-Hintergrundmenü für einen Ordner anzuzeigen. Das Menü wird angezeigt, aber es gibt die folgenden Probleme: < ol> [*]Wenn ich den Pfad zum Ordner als C:\Benutzer\Benutzername\Desktop\Folder\Child spezifiziere, erhalte ich ein Menü nicht für diesen Ordner, sondern für seinen übergeordneten Ordner, für C :\Benutzer\Benutzername\Desktop\Ordner (dies ist zu sehen wenn Sie den Punkt „Eigenschaften“ ausführen, siehe: „Standort“ in Eigenschaften)
[*]Trotz Aufruf von HandleMenuMsg und HandleMenuMsg2 sind die Untermenüs für „Give Zugriff auf“ werden nicht angezeigt
[*]Außerdem funktionieren Menüelemente, die von Drittanbieterprogrammen installiert wurden, nicht (z. B. „Git Gui Here“ , „Git Bash Here“, ...)
Um ein Rechtsklick-Hintergrundmenü für einen Ordner zu erhalten, verwende ich IShellFolder2::CreateViewObject< /p> Sie können meinen Code unten sehen. Um diesen Code auszuführen und das Menü anzuzeigen, müssen Sie Folgendes tun: [list] [*]Ersetzen Sie den filePath-Wert durch den Pfad zum Ordner [*]Drücken Sie die Schaltfläche „Kontextmenü“, um das Kontextmenü anzuzeigen [/list]
if (!SUCCEEDED(pContextMenu->InvokeCommand(&cmi))) {
std::stringstream ss; ss QueryInterface(IID_IContextMenu2, ppContextMenu))) { m_contextMenu2 = (LPCONTEXTMENU2)*ppContextMenu; }
if (*ppContextMenu) icm1->Release(); // we can now release version 1 interface, // cause we got a higher one else { *ppContextMenu = icm1; // since no higher versions were found } // redirect ppContextMenu to version 1 interface } else return (FALSE); // something went wrong
Es gibt eine Datei mit Hunderten MB, bei der es sich angeblich um eine JSON-Datei handelt. Leider wurde die Datei mit einem Fehler geschlossen und die JSON-Struktur ist nicht korrekt.
Außerdem ist...
Ich möchte ein benutzerdefiniertes Widget in Qt C++ erstellen, ohne Qt Designer oder .ui-Dateien zu verwenden. Konkret möchte ich ein Widget schreiben, das von einer Qt-Klasse (z. B. QWidget oder...