Sonntag, 10. Januar 2010

CommandButton mit Dropdownlist

Betreff CommandButton mit Dropdownlist
Von Lothar Geyer
Datum 17.10.2009 23:54:55

Ich suche für eine VB6-Anwendung ein Control wie ein Commandbutton, der
im rechten Teil einen Pfeil enthält, über den eine Dropdownliste
geöffnet werden kann. So wie ich es bei verschiedenen Office-Anwendungen
gesehen habe.

Möglichst auf einem Standard-VB6-Control aufbauend mit Source-Kode.
Kennt jemand so etwas?

Lothar Geyer

Betreff Re: CommandButton mit Dropdownlist
Von "Herfried K. Wagner [MVP]"
Datum 18.10.2009 00:02:39

Hallo Lothar!

Lothar Geyer schrieb:
> Ich suche für eine VB6-Anwendung ein Control wie ein Commandbutton, der
> im rechten Teil einen Pfeil enthält, über den eine Dropdownliste
> geöffnet werden kann. So wie ich es bei verschiedenen Office-Anwendungen
> gesehen habe.
>
> Möglichst auf einem Standard-VB6-Control aufbauend mit Source-Kode.
> Kennt jemand so etwas?

Einen Tip basierend auf den Standardsteuerelementen habe ich nicht, aber
eventuell kommen für Dich folgende Steuerelemente in Betracht, die dies
unterstützen:

ButtonControls « TimoSoft-Software.de


Bildschirmphotos:

Album 1 « Gallery 1 « Screenshots « TimoSoft-Software.de


--
M S Herfried K. Wagner
M V P
V B

Betreff Re: CommandButton mit Dropdownlist
Von Timo Kunze
Datum 18.10.2009 00:10:51

http://www.timosoft-software.de/downloads/buttoncontrols/
-> Das Beispiel "Menu Button" zeigt wie es prinzipiell geht, nämlich
mittels Custom Draw (SubClassing + NM_CUSTOMDRAW-Nachricht). Es
erfordert allerdings die comctl32.dll 6.0, also mindestens Windows XP
mit Manifest-Datei.
Für ältere Systeme bleibt dir nur ein OwnerDraw-Button, d. h. dem
Button-Fenster den BS_OWNERDRAW-Stil verpassen und die Nachricht
WM_DRAWITEM behandeln. Hier musst du dann eben den kompletten Button
selbst zeichnen. Das Control selbst kümmert sich nur noch um die Logik
(Mausbehandlung usw.).

Timo
--
www.TimoSoft-Software.de - Unicode controls for VB6
"Those who sacrifice freedom for safety deserve neither."
"Demokratie ist per Definition unsicher. Ihr Schutz entsteht aus der
Überzeugung, dass die demokratischen Kräfte überwiegen und sich – auf
demokratischem Wege – durchsetzen."

Betreff Re: CommandButton mit Dropdownlist
Von Timo Kunze
Datum 18.10.2009 00:14:56

Ach ja, ab Vista gibt es für sowas auch einen neuen Button-Stil, den
DropDown-Button.

Timo
--
www.TimoSoft-Software.de - Unicode controls for VB6
"Those who sacrifice freedom for safety deserve neither."
"Demokratie ist per Definition unsicher. Ihr Schutz entsteht aus der
Überzeugung, dass die demokratischen Kräfte überwiegen und sich – auf
demokratischem Wege – durchsetzen."

Betreff Re: CommandButton mit Dropdownlist
Von Lothar Geyer
Datum 19.10.2009 01:01:30

Hallo Timo,

Timo Kunze schrieb:
> http://www.timosoft-software.de/downloads/buttoncontrols/
> -> Das Beispiel "Menu Button" zeigt wie es prinzipiell geht, nämlich
> mittels Custom Draw (SubClassing + NM_CUSTOMDRAW-Nachricht). Es
> erfordert allerdings die comctl32.dll 6.0, also mindestens Windows XP
> mit Manifest-Datei.

Das ist natürlich irgendwie ein KO-Kriterium. Es gibt noch zu viele
Kunden mit NT und W2K. Auch noch einige ältere, wenn ich das richtig weiß.

> Für ältere Systeme bleibt dir nur ein OwnerDraw-Button, d. h. dem
> Button-Fenster den BS_OWNERDRAW-Stil verpassen und die Nachricht
> WM_DRAWITEM behandeln. Hier musst du dann eben den kompletten Button
> selbst zeichnen. Das Control selbst kümmert sich nur noch um die Logik
> (Mausbehandlung usw.).

Ältere Versionen der Button-Controls sind nicht (mehr) verfügbar? ;-)

Wie ist das mit einer Umstellung? D.h. Wie schaut das mit den Properties
und Events aus? Wie viel Aufwand einen Button einfach zu tauschen?

Lothar Geyer

Betreff Re: CommandButton mit Dropdownlist
Von Timo Kunze
Datum 19.10.2009 01:34:12

Lothar Geyer schrieb:
>> Für ältere Systeme bleibt dir nur ein OwnerDraw-Button, d. h. dem
>> Button-Fenster den BS_OWNERDRAW-Stil verpassen und die Nachricht
>> WM_DRAWITEM behandeln. Hier musst du dann eben den kompletten Button
>> selbst zeichnen. Das Control selbst kümmert sich nur noch um die Logik
>> (Mausbehandlung usw.).
>
> Ältere Versionen der Button-Controls sind nicht (mehr) verfügbar? ;-)
Das sollte auch mit dem VB6-Button gehen.
Version 1.3.0 ist die älteste Version der ButtonControls, die noch
verfügbar ist (am Ende der Seite, unter "Deprecated Versions". Die läuft
auch noch unter NT4 und 2000. Ich gebe aber zu bedenken, dass seitdem u.
a. einige Bugs gefixt wurden, darunter auch GDI-Handle-Leaks.

> Wie ist das mit einer Umstellung? D.h. Wie schaut das mit den Properties
> und Events aus? Wie viel Aufwand einen Button einfach zu tauschen?
Ich nehme bei der Entwicklung meiner Controls wenig Rücksicht auf sowas,
ganz einfach deshalb, weil die VB6-Controls einige Design-Schwächen
haben, die ich nicht übernehmen will. Zudem ließe sich der deutlich
größere Funktionsumfang meiner Controls ohnehin nur schwer mit dem
antiquierten Korsett der VB6-Controls verbinden.
Wenn man Buttons nur soweit nutzt, dass die Dinger eben eine
Beschriftung und ein Click-Event haben, ist der Aufwand gering (dran
denken, dass "Caption" bei mir "Text" heißt und dass es eine Eigenschaft
"UseSystemFont" gibt).

Timo
--
www.TimoSoft-Software.de - Unicode controls for VB6
"Those who sacrifice freedom for safety deserve neither."
"Demokratie ist per Definition unsicher. Ihr Schutz entsteht aus der
Überzeugung, dass die demokratischen Kräfte überwiegen und sich – auf
demokratischem Wege – durchsetzen."

Betreff Re: CommandButton mit Dropdownlist
Von Ahmed Martens
Datum 18.10.2009 12:11:20

Am Sat, 17 Oct 2009 23:54:55 +0200 schrieb Lothar Geyer:

> Ich suche für eine VB6-Anwendung ein Control wie ein Commandbutton, der
> im rechten Teil einen Pfeil enthält, über den eine Dropdownliste
> geöffnet werden kann. So wie ich es bei verschiedenen Office-Anwendungen
> gesehen habe.
>
> Möglichst auf einem Standard-VB6-Control aufbauend mit Source-Kode.
> Kennt jemand so etwas?
>
> Lothar Geyer

CoolXP hat so ein Control. Einfach einmal danach googlen.
Leider werden die ocx-Controls nicht mehr weiter entwickelt. Aber die
Standard-Controls laufen bei mir absolut einwandfrei.

Gruß Ahmed

--
Antworten bitte nur in der Newsgroup

Betreff Re: CommandButton mit Dropdownlist
Von Ulrich Korndoerfer
Datum 19.10.2009 07:46:12

Hallo Lothar,

Lothar Geyer schrieb:
> Ich suche für eine VB6-Anwendung ein Control wie ein Commandbutton, der
> im rechten Teil einen Pfeil enthält, über den eine Dropdownliste
> geöffnet werden kann. So wie ich es bei verschiedenen Office-Anwendungen
> gesehen habe.
>
> Möglichst auf einem Standard-VB6-Control aufbauend mit Source-Kode.
> Kennt jemand so etwas?

Das läßt sich relativ leicht selbst bauen. Am besten ein eigenes
Usercontrol dafür hernehmen.

Als Beispiel kannst Du dir ja mal die ComboBox-Imitation (per
Usercontrol realisiert) auf



ansehen.

--
Ulrich Korndoerfer

VB tips, helpers, solutions -> http://www.proSource.de/Downloads/

Betreff Re: CommandButton mit Dropdownlist
Von "W. Wolf"
Datum 19.10.2009 07:51:35

Hallo Lothar,

Harald hat so was ähnliches auf seinen Seiten, siehe:
http://www.aboutvb.de/kom/artikel/komdroplist.htm
den Rest erledigst Du über den Marlett-Font oder
den Grafik-Stil der Schaltfläche.


Gruß
W. Wolf

"Lothar Geyer" schrieb im Newsbeitrag
news:7juspcF37p685U1@mid.individual.net...
> Ich suche für eine VB6-Anwendung ein Control wie ein Commandbutton, der im
> rechten Teil einen Pfeil enthält, über den eine Dropdownliste geöffnet
> werden kann. So wie ich es bei verschiedenen Office-Anwendungen gesehen
> habe.
>
> Möglichst auf einem Standard-VB6-Control aufbauend mit Source-Kode. Kennt
> jemand so etwas?
>
> Lothar Geyer

Keine Kommentare:

Kommentar veröffentlichen