Rechte Maustaste anpassen beim Editieren

Wie kann ich die Befehle der rechten Maustaste beim Editieren verändern? Ich würde die "Pan"-Funktion gerne einfügen (bzw. Seite nach rechts / nach links verschieben).
Hallo Stephanie,
funktioniert eigentlich genauso wie das Anpassen der "normalen" Werkzeugleisten:
Rechte Maustaste auf irgendeine Symbolleiste --> Anpassen, dann unter dem Registrierblatt Werkzeugleisten die Kontextmenüs aktivieren und aus den Befehlen den gewünschten per drag and drop in das entsprechende Kontextmenü ziehen. Für die Anpassung der Kontextmenüs darfst Du Dich nur nicht im Editier-Modus befinden, also ggf. vorher auf Edititor - Bearbeitung beenden klicken.
Wenn Du's kompliziert haben willst, geht's natürlich auch per Programmierung über die Schnittstellen ICommandBar und ICommandItem :-)

Viele Grüße
Jörg Ostendorp
Hah, jetzt lese ich Deine Frage erst richtig.. Oder meintest Du mit "beim Editieren" genau die Anpassung während des Editier-Modus? Hatte gedacht, das bezieht sich auf das Kontextmenü, das beim Editieren erscheint ("Kartenansicht-Kontextmenü")?

Mit leicht verwirrten Grüße
Jörg Ostendorp
Hallo Jörg,
ich meine das Menü, das während des Editierens beim Klicken der rechten Maustaste erscheint ("An Feature fangen/Richtung/Länge/...") - zu diesem Menü würde ich gerne weitere Funktionen (s. erste Frage) hinzufügen.
Grüße zurück!
Hallo Stephanie,
also doch richtig verstanden... ;-)
Müßte das "Skizzenwerkzeug-Kontextmenü" sein, (das bei mir interessanteweise nicht erscheint).
Die Anpassung kannst Du wie in der ersten Antwort beschrieben durchführen, hier noch einmal ganz ausführlich:
-Bearbeitung erstmal beenden
-Im Menü "Werkzeuge" auf "Anpassen.." klichen
-Es öffnet sich ein Fenster mit drei Registrierblättern, dort mußt Du im Registrierblatt "Werkzeuge" ein Häkchen bei den Kontextmenüs setzen.
-Daraufhin erscheint irgendwo auf dem Bildschirm oder zwischen Deinen anderen Symbolleisten eine anpassungsfähige Menüleiste "Kontextmenüs". Das, was Du suchst, müßte wie gesagt das "Skizzenwerkzeug-K." sein.
-Im Anpassungsfenster wechselst Du zum Registrierblatt "Befehle", wo Du mit einem Klick auf "Bildausschnitt verschieben/Zoomen" fündig werden dürftest.
-Wähle den von Dir gewünschten Befehl aus und ziehe ihn in das entsprechende Kontextmenü.
-Dann solltest Du Dir noch überlegen, ob Du das für die Normal-Vorlage, oder nur für das entsprechende Kartendokument abspeicherst (kannst Du im Anpassungsfenster festlegen).
-Fertig.

Viele Grüße
Jörg Ostendorp
Hallo Jörg,
genau die von Stephanie angesprochene Funktion habe ich bisher beim Kontextmenü des Editierwerkzeugs auch vermisst.
Wenn ich nun nach deiner Beschreibung vorgehe, lässt sich zwar beim Werkzeug Kontextmenü ein Haken setzen und die Leiste erscheint auf dem Bildschirm; jedoch nach dem Schließen des Anpassungsfensters ist die Leite wieder verschwunden. Nach dem erneuten Öffnen des Anpassungsfensters ist das Häkchen nicht gesetzt. Bei anderen Werzeugleisten klappt das Ein und Ausblenden jedoch problemlos, so dass ich hier einen Programmierfehler vermute. Oder liegts vielleiht an was anderem?? Ich arbeite mit Version ArcView 8.3.

Gruss
Martin
Hallo Martin,
nee, das hat schon alles seine Richtigkeit. Die Kontextmenü-Symbolleiste beim Anpassen ist nichts anderes als eine Sammlung der diversen Kontextmenüs, also eigenständiger PopUp-Symbolleisten. Ein Kontextmenü/die Befehle eines Kontextmenüs sind aber nunmal nur im Kontext zu Deiner Arbeit bzw. zu den angeklickten Application- und Map-Objekten sinnvoll einsetzbar, daher der Name. Was sollte man mit einer Super-Symbolleiste anfangen, die zwar ziemlich viele Befehle enthält, von denen aber über 90% gar nicht zur Verfügung stehen? (Was zugegebenermaßen etwas nervig ist, ist das AV die Einstellung für die Anpassung selbst nicht speichert, die Kontextmenüleiste also beim nächsten Anpassen wieder ausgewählt werden muß).
Wenn Du Befehle bei einem Deiner Kontextmenüs vermißt, kannst Du diese eben beim Anpassen ergänzen (drag and drop wie oben beschrieben). Wenn Du Befehle dauerhaft sichtbar zur Verfügung stellen willst, kannst Du sie in Deine normalen Menü- und Symbolleisten einfügen oder Dir ganz einfach neue erstellen. (Das Verschieben von Karten würde ich persönlich einfach zur Symbolleiste "Werkzeuge" packen). Auf diese Weise kannst Du Dir auch eine Menüleiste zusammenbasteln, die mit der Kontextmenü-Symbolleiste beim Anpassen identisch, beim Arbeiten aber sichtbar ist. Macht halt nur keinen Sinn :-)
Von der Programmierung mal abgesehen verhalten sich die ganzen Symbol- und Menüleisten in AV genauso wie die im MS-Office.

Viele Grüße
Jörg Ostendorp
Hallo Jörg,
inzwischen hat das Einbinden von zusätzlichen Befehlen in das Kontextmenü geklappt. Entscheidend war, dies gleich nach dem Haken setzen vom Kontextmenü zu tun. Und von der Befehlsauswahl kann nur ein Teil aus der Auswahlliste eingebunden werden. Und gerade das erste zum verschieben (Pan-Hand) geht eben nicht. Dagegen lassen sich die Pfeile problemlos in die Leiste reinziehen.
Viele Grüsse und danke für Deine Info

Martin
Hallo Martin,
daß Du die Pan_Hand nicht ins Kontextmenü reinziehen kannst liegt vermutlich daran, daß es ein Befehl ist der dauerhaft aktiv ist. Dafür dürfte es erforderlich sein, daß eine Menü- oder Symbolleiste geöffnet bleibt. Du kannst die Hand per VBA einfügen, allerdings nicht nutzen, weil das Kontextmenü ja sofort wieder geschlossen wird und damit auch der Befehl.
Kannst Dir das ja mal mit folgendem Code anschauen. Eingefügt wird die Hand (beim Öffnen des Dokumentes) einmal ins Karten-Kontextmenü, einmal direkt ins Hauptmenü. Nur in der zweiten Variante ist die Hand auch benutzbar.

Private Function MxDocument_OpenDocument() As Boolean
Dim pApp As IApplication
Dim pDoc As IDocument
Dim pCBars As ICommandBars
Dim pCBar As ICommandBar

Set pApp = Application
Set pDoc = pApp.Document
Set pCBars = pDoc.CommandBars
' Ins Kontextmenü einfügen
Set pCBar = pCBars.Find(ArcID.View_MapViewContextMenu)
pCBar.Add ArcID.PanZoom_Pan
' Ins Hauptmenü einfügen
Set pCBar = pCBars.Find(ArcID.MainMenu)
pCBar.Add ArcID.PanZoom_Pan
End Function

Viele Grüße
Jörg Ostendorp