Buttons



  • Hallo

    Gibt es eine Möglichkeit auf einem Button ein Icon zu platzieren und zum Beispiel rechts daneben noch einen Text zu schreiben (vielleicht auch drunter). Wie ihr sicher merkt, habe ich von der Materie fast gar keine Ahnung und würde mich deshalb über eine Idiotensichere Erklärung freuen.

    chrische



  • Also, ich mache das immer mit Bitmaps.

    Die Bitmaps kannst du mit Paint oder mit der IDE selbst erstellen.
    Musst du dann zu deinen Resourcen im Resourcen-Fenster hinzufügen.
    --> Add Resource -> Import -> Bitmap1.bmp

    Und gegebenfalls der Bitmap eine ID angeben. Standardmässig IDB_BITMAP1 oder
    du gibst sinnvollere Namen.

    Als erstes klickst du deinen Button an und setzt unter Eigenschaften/Properties
    'Owner Draw' auf 'true'.
    Danach weist du dann deinem Button eine Variable zu. Rechte Maustaste -> Add Variable:
    bsp. m_myButton
    Dieser ist normalerweise vom Typ

    CButton.
    

    Den änderst du in der .h-Datei in

    CBitmapButton
    

    von Hand aus.

    Dann in der OnInitDialog()-Funktion
    unter

    // TODO: Add extra initialization here
    

    fügst du

    m_myButton.LoadBitmaps(IDB_BITMAP1,....);
    

    ein.

    Diese Funktion kann bis zu 4 Parameter für 4 verschiedene Bitmpas erhalten:
    Button_Normal, Button_Gedrückt, Button_Selektiert, Button_Disabled.

    Ich hoffe ich konnte dir helfen. 😉



  • Hallo erstmal danke für deine schnelle Hilfe. Diese Art kannte ich bereits und ich finde sie sehr mühselig, weil man immer wieder die Bitmaps erstellen muss. Ich dachte eher an eine Möglichkeit Icon auf den Button zu laden (dies kann ich breits) und dann trotzdem noch neben dem Icon einen Titel zu schreiben, um zum Beispiel die Tastaturfunktionen nutzen zu können (&Beenden - mit den unterstrichenen Buchstaben)

    danke
    chrische



  • Ok, dann habe ich das misverstanden.
    Nun kann ich dir leider nicht helfen. Bin selber ratlos. 😞

    Aber ich habe auch ein Problem:
    Wenn ich ein Bitmap auf einem Button habe, welches rund ist.
    Kann man die Ecken vielleicht so färben, dass sie transparent sind?
    Bei Icons geht das ja. Aber bei Bitmaps?

    Denn, wenn ich ein Bitmap-Hintergrund habe sieht man die eckige Form leider noch.



  • Hi,

    das mit den Bitmaps habe ich vorher auch gemacht, nur ist das doch sehr mühselig wenn man 2-4 bitmaps pro button erstellen muß und noch für jeden button andere weil man ja nicht 10 buttons mit gleichem text haben will. leider ist mein eigener ocx button noch nicht fertig, es wird verschiedene images geben(glas, metall...) die als vektoren hinterlegt sind, somit skalierbar un frei mit text zu belegen incl. shadow usw.

    Wenn mir nur einer helfen könnte mit den button events (das nochmal hier gesagt 😉 )

    im moment ist es mehr eine bitmap pseudokopie die ich verwende, kommt aber schon gut, wenn du kein ID event brauchs kannst du den schon benutzen. einfach anmelden und als activex element einfügen, toppelklich und du hast die eventfunktion...kannst draus lernen und eigene bilder einfügen...

    bei interesse...mail

    ... und helft mir (fleh)



  • Also, das mit der Transparenz einer Bitmap ist nicht wirklich schwer... guck mal bei codeproject danaach, die haben da sicher satt Klassen, die deinen Wünschen entsprechen...



  • (D)Evil schrieb:

    Also, das mit der Transparenz einer Bitmap ist nicht wirklich schwer... guck mal bei codeproject danaach, die haben da sicher satt Klassen, die deinen Wünschen entsprechen...

    Soweit ich es in erinnerung habe gibt es hierzu was in der faq...



  • Danke für die Ratschläge, jedoch kann mir das in der FAQ nicht weiterhelfen. Ist es denn nicht möglich, bestimmte Pixel mit einem bestimmten Farbwert darzustellen, welcher dann transparent dargestellt wird? Bei Icons kann man die Farbe ja einfach aussuchen.

    Ich möchte auch ungern fremde Klassen benutzen, da die den Code nur unnötig aufblähen.

    EDIT: Zur Erklärung: Der Tip in der FAQ zeigt nur, wie man Teile eines Bitmaps transparent darstellen kann. Ich will aber ein Bitmap für ein CBitmapButton-Objekt nutzen.



  • Vielleicht kannst du dir den Code hieraus ein wenig ableiten.
    http://www.codeproject.com/buttonctrl/CKbcButton.asp



  • meine Güte guck dir diesen verdamten Code bei codeguru und codeproject an, und such dir raus, was dir davon als nötig erscheint, und kopier es in deine Klassen. Und wennd dann Fehler auftreten sagst de hier in dem Thread nochmal bescheid...



  • Hey, Leute,
    danke nochmal für die Tips und Ratschläge und Hilfe.
    Wie in einem anderen Thread schon verlautet, bin ich schon fündig geworden.
    Hatte wohl Tomaten auf den Augen.
    Auch wenn die CKbcButton auch keinen schlechten Eindruck macht.
    Ich verwende momentan die Klasse CxSkinButton. Die ist zwar noch nicht fehlerfrei, aber die lassen sich ausbügeln.

    Danke. 🙂


Anmelden zum Antworten