Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » (Noch) ein (eigenes) Kontextmenü ?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.04.2007, 09:55 Uhr
me-S-on



Hallo. Ich hätte da ein Anliegen, welches die meiner Meinung nach geniale Intelli-Mouse vom MS betrifft.
Wie jeder sicher weiss, kann man mit dem zugehörigen Treiber insgesamt 5 Mouse-buttons nutzen. Sogar selber programmieren.Und darum geht’s.,
Ich will mir auf einen Button mein eigenes Kontextmenü legen, im Sinne einer Quicklaunch-leiste, die beliebig ausgestattet werden kann, vom User, immer wieder editierbar.
Da weiss ich nicht, wie ich ein kompiliertes Programm nachher änderbar machen soll, ausser es samt Umgebung und Quelltext immer dabei zu haben, und das is es nicht!
Aber es gibt zich Programme, die so ablaufen, ich ahne: DLL’s...???

Dazu habe ich zwei Fragen,. Die erste ist sicher nicht allzu komplex:
1)
a) ( ja sorry, die erste ist zweigeteilt ) :
Kann ich in der Windowsprogrammierung ein Fenster erstellen, welches NUR aus einem
Menü besteht, wie das Kontextmenü?
b) Kann ich diesem Menü eigene Farben zuweisen, und wie? Ress-Editor?
Aber ich würde gerne die Vorgegebene Menüs wählen, nur andere Farben als grau.
2)
Dieses Menü im Sinne eines Kontextmenüs soll dynamisch erweiterbar sein, so
Dass die einzelnen Menüpunkte sowohl untereinander als auch ineinander
( wie Ordnerstrukturen) angeordnet sind, und sich , vielleicht durch eine con-
fig.exe aus Such-Dialogen die jeweiligen Programme, bzw Pfade raussuchen
lassen, welche dann mit in das Menü eingebaut werde sollen.
Wie sieht die Theorie dazu aus? Ich meine , an sich ist das Programm ja schon
kompiliert, wie kann ich denn dynamisch den User eventuelle Änderungen vor
nehmen lassen, die dann sowohl Anzahl der Menüpunkte als auch Tiefe der
Menüpfade als auch Programme nach Wunsch im NACHHINEIN optional entwe-
der hinzufügen oder entfernen lassen?

Grundsätzlich: DLL verwenden???

Danke schon mal.
--
- Bonus vir semper tiro -
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.04.2007, 19:37 Uhr
~me-sss-on
Gast


Hallo?!??!?
Antwortet keiner?
Muss doch jemand wissen, oder?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.04.2007, 19:45 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


1a) ja
1b) jain - dann kannste halt keine Menüs verwenden, sondern musst dir deine Ansicht aus einem Fenster selbst bauen -> schlechte Variante
2) wo ist das problem? du musst halt die Menüeinträge dynamisch aus einer Datei laden.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.04.2007, 07:42 Uhr
~me-ss-on
Gast


Naja gibt kein Problem in der Hinsicht, nur damit das ich es theoretisch raffen wollte.
Resümee:
-Also bezieht ein Kontextmenü seine einzelnen Einträge aus ner Datei?
Ok, in solch eine zu schreiben und aus ihr zu lesen,anzuhängen, wahlweises Zeilen löschen gehört zu den basics.
-Wie gesagt, ich habe drei Maustastebn zur freien Verfügung und will auf eine ein eigenes, am besten selber eingefärbtes und sechseckiges Kontextmenü haben, welches mir all meine
Development Exes und andere Apps anbietet.
Natürlich muss es dynamisch erweiterbar sein, d.h. falls ich durch irgendeine cofig.exe in diese besagte Date Zelen entferne oder Zeilen hinzufüge, muss diese Änderung in diesem Kontextmenü sichtbar werden, anhand von mehreren Einträgen oder weniger.
Nur, wie ?
Wie füge ich so (ersteinmal nur in ein normales ) Kontextmenü ein, ich mein, da muss ich ja n grauen Balken hinzufügen, bzw, rausnehmen, diesen mit dem mouseover einer ausgewählten Menüflache belegen,und dann noch den klick fürs ausführen, bzw, den zeitlich begrenzten mouseover für das ( meiner Meinung nach schwierigste ) aufsliden etwaiger Untermemüs.
Vor allem: Wie implementiere ich diese hierarchischen Menü-Unterpunkte in die Datei, aus welcher er sich .........xml?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
11.04.2007, 08:35 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Naja - du schreibst eine Anwendung, die nur das Kontextmenü erzeugt und anzeigt, welches du dann mit deinen Tasten aufrufen kannst. evtl als Parameter ne Nummer für das Kontextmenü das du haben willst (1-3).

Dann nimmste z.B. XML:


C++:
<file>
  <entry>
    <name>Testeintrag</name>
    <programm>C:\Programme\...</name>
  </entry>
</file>



kannst natürlich aber genausogut einfach ne Datei mit den einzelen Einträgen haben.

Deine Anwendung muss dann halt die Datei einlesen, dann das Menü à la

CreatePopupMenu
pro Eintrag In Datei AppendMenu

und dann anzeigen z.B. mit TrackPopupMenuEx

Auswerten der Befehle musste halt dann in der WM_COMMAND, jeder Eintrag kriegt halt von oben nach unten ne Nummer, damit du weißt was du dann ausführen sollst.

Dein 6-Eck wird dann halt viel Arbeit, da du da das ganze Menü-Zeug selbst bauen musst.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
11.04.2007, 10:42 Uhr
~me-SS-on
Gast


Aha. Danke.
Naja das mit dem 6-eck: Ne Region aus nem Poly mit nem Background clippen.
Aber da dann dynamisch die Menü-Buttons rein?
Ich überlege schon, mich bei der Entwicklung festzulegen, welche und wieviele Anwendungen da rein sollen und welche.
Allerdings kann ich die MenuFarbe doch sicher auch durch Subclassing abfangen und die BG überschreiben, oder funktioniert das da anders ?( lese von Ressourcen selber machen und
so weiter und so fort, oder einfach vorgegeben aufrufen, mit ner speziellen scripting-sprache....)
Ist ein Menü oben in ner menüleiste programmiertechnische eigentlich sehr verschieden zu einem Kontextmenü? Ausser das es keine Clientarea hat und untereinander statt nebeneinander angeordnet ist?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
12.04.2007, 11:40 Uhr
Th



Ein Kontextmenü ist wie ein Submenü zu verstehen, d.h. es wird nur nicht der Name des Mainmenüs angezeigt (weil du meinst ein Kontextmenü ist vertikal statt horizontal angeordnet). Mir kommt es aber so vor, als ob dir noch einige Grundlagen fehlen. Dann solltest du ersteinmal klein anfangen und bei konkreten Fragen dann posten...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
18.04.2007, 14:15 Uhr
~me-is.back
Gast


Jup, es ist ein Untermenü, ohne Oberpunkt.
Und wenn ich nun :


Code:
IDR_MENU1 MENU
BEGIN
    POPUP "EINS"
       BEGIN
               MENUITEM "Config", IDM_OPT_CONF
       END
END



Einfach ohne POPUP schreibe..... habe ich das dann direkt offen?
Also, direkt vertikal angeordnet, so als ob ich über einen Menüpunkt drüberscrollte ( den es ja gar nicht gibt)?
----
Und:
Wie zeige ich das Menü alleine an, also ohne Fenster(rahmen)?
Es müsste ja die Clientarea beim Menüertstellen mit (CYSIZE und CXSIZE oder wie das heisst )direkt ermittelt werden, und damit noch vor Zeichnen des Fensters an die Breite und Höhe des Fensters übergeben werden, welches daraufhin nur knapp u, das Menu herum gezeichnet wird (sagen wir, ich will es erstmal viereckig).......oder?
Gibbet noch ne Alternative NUR ein Menü, ohne Rand und Fenster zu zeichnen?
Weil , die Sache mit dem Fensterzeichnen mit direktem ermitteln der Abmessungen des Menü-panels und übergabe dieser an CreateWindow ist mir nur selber eben eingefallen.....
Aber sonst:
Danke schonmal
---
-
ach russisch Roulette mit ner halbautomatischen Magazinpistole heist sicher:
Jeder ist immer dran, oder?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: