Button mit Farbe oder Bild
-
Hallo,
Ich will einen Button mit einem Bitmap erstellen. Wenn ich allerdings im Dialogfeldeditor von VC++ 6.0 einen Button erzeuge und dann in dessen Eigenschaftsdialog das Feld Bitmap aktiviere, kann ich kein Bitmap auswählen. Ausserdem habe ich versucht ein Bitmap während der Laufzeit zu laden und zuzuweisen. das Bitmap hatte ich vorher im Ressourceneditor erstellt, doch es hat nicht geklappt. In der MSDN-Hilfe bin ich auf die Klasse CBitmapButton gestoßen, kennt sich jemand mit ihr aus ?
Ausserdem will ich wissen wie man die Farbe eines Buttons ändern kann, auch zur laufzeit.
Danke für Antworten.
Turbobrain
-
Kenne das Problem, hab aber hier im Forum schon eine Lösung gefunden:
//Instance-Handle besorgen HINSTANCE hInstance = AfxGetInstanceHandle(); //Bitmap-Handle besorgen und Bitmap laden HBITMAP hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP)); //Bitmap auf Button bringen m_buttonCtrl.SetBitmap(hBitmap); // Bedeutung // m_buttonCtrl: Control des Buttons // IDB_BITMAP: Bitmap Ressource //Code kann z.B. im OnInitDialog der Dialogfeldklasse stehen
-
Vielen Dank für die Antwort. Hat sofort geklappt.
Viele Beispiele in FAQ oder im Forum sind schlecht und funktionieren nicht.
Danke
Turbobrain
-
Hallo,
mir ist bei der Umsetzung des Codes noch die frage eingefallen, ob es auch ohne Control-Variable geht. Das wäre besser für mich. Ich habe es schon mit der GetDlgItem- Funktion probiert. Wenn ich aber deinen Code benutzte und statt
m_buttonCtrl mir einen Zeiger vom Typ CButton* auf des zu ändernden Button hole, der Code ist dann so:CButton* Button = (CButton*) GetDlgItem(IDC_BUTTON); //Instance-Handle besorgen HINSTANCE hInstance = AfxGetInstanceHandle(); //Bitmap-Handle besorgen und Bitmap laden HBITMAP hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP)); //Bitmap auf Button bringen Button->SetBitmap(hBitmap);
Aber wenn ich ihn ausfürhre sehe ich keine Veränderung des Buttons.
Warum?
Danke schon im Vorraus.
Turbobrain
-
ich habe da eine anschliessende frage. diesen code bsp finde ich öfters, und er ist auch so weit io.
jetzt plane ich gerade eine mdi anwendung mit CFormView's. wenn ich in einer child form ein button mit bitmap bg erstellen möchte, wie verfahre ich dann?//Instance-Handle besorgen HINSTANCE hInstance = AfxGetInstanceHandle(); //Bitmap-Handle besorgen und Bitmap laden HBITMAP hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP)); //Bitmap auf Button bringen m_buttonCtrl.SetBitmap(hBitmap); // Bedeutung // m_buttonCtrl: Control des Buttons // IDB_BITMAP: Bitmap Ressource //Code kann z.B. im OnInitDialog der Dialogfeldklasse stehen
^in bezug auf die letzte comment zeile
hat da jemand einen tipp für mich? bin auf der suche, aber leider finde ich nur sehr wenig praktische dokumentation von CFormView und MDI.
danke im voraus