Visual C++ Schaltfläche als Grafik darstellen und ...
MASCH
- programmiertechnik
Ich weiß das ich hier nicht ganz richtig bin aber in diesem Forum ist mir bei JAVA JS und HTML immer sehr gut weitergeholfen wurden.
Wie kann ich in Visual c++ einen Button als Grafik darstellen (natürlich mit gleichen eigenschafften wie der Button)
Und
Ist es möglich nach Betätigung eines Button andere Button auf der gleichen Oberfläche für zwei bis drei sec. zu sperren? Wenn ja wie stelle ich das an.
Und
Ist es möglich nach Betätigung eines Button die Farbe zu wechseln bzw die Grafik?
Habt Ihr vielleicht einen Vorschlag wo ich Beispiele solcher Art finde?
Danke Grüße MASCH
Hallo,
also an und ausschalten von Buttonen geht mit ControlVariableButton.EnableWindow(true oder false). Für das Zeitgesteuerte brauchst Du nen Timer, dann geht das auch.
Und das mit den Bitmap auf Button geht so:
1. Auf der Eigenschaftenseite des Buttons ist die Option "Bitmap" unter "Formate" auszuwählen.
2. Im Sourcecode des Programms ist dann noch folgendes zu tun... (siehe Beispielfunktion)
void CBitmapButtonDlg::IrgendeineFunktion()
{
//Instance-Handle besorgen
HINSTANCE hInstance = AfxGetInstanceHandle();
//Bitmap-Handle besorgen und Bitmap laden
HBITMAP hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
//Bitmap auf Button bringen
m_button.SetBitmap(hBitmap);
}
-> IDB_BITMAP1 ist die Ressourcen ID des Bildes
-> m_button ist die Membervariable des Buttons
Das wars schon.
Zum wechseln der Button-Grafik ladst Du dann anfach ein neues auf den Button.
Manuela
Hallo,
also an und ausschalten von Buttonen geht mit ControlVariableButton.EnableWindow(true oder false). Für das Zeitgesteuerte brauchst Du nen Timer, dann geht das auch.
Und das mit den Bitmap auf Button geht so:
- Auf der Eigenschaftenseite des Buttons ist die Option "Bitmap" unter "Formate" auszuwählen.
- Im Sourcecode des Programms ist dann noch folgendes zu tun... (siehe Beispielfunktion)
void CBitmapButtonDlg::IrgendeineFunktion()
{
//Instance-Handle besorgen
HINSTANCE hInstance = AfxGetInstanceHandle();
//Bitmap-Handle besorgen und Bitmap laden
HBITMAP hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
//Bitmap auf Button bringen
m_button.SetBitmap(hBitmap);
}
-> IDB_BITMAP1 ist die Ressourcen ID des Bildes
-> m_button ist die Membervariable des Buttons
Das wars schon.
Zum wechseln der Button-Grafik ladst Du dann anfach ein neues auf den Button.
Manuela
Vielen Dank für Deine Hilfe aber ich komme noch nicht ganz klar
Wo finde ich die Ressourcen ID eines Bildes bzw wo lege ich dies fest
bei der Membervariablen bekomme ich den Fehler das der linke Teil von .setBitmap eine Klasse/Struktur/Union sein muss
ich bin übrigens Neuling in c++ also bitte nicht aufregen
Danke für Deine Hilfe
Hallo,
also an und ausschalten von Buttonen geht mit ControlVariableButton.EnableWindow(true oder false). Für das Zeitgesteuerte brauchst Du nen Timer, dann geht das auch.
Und das mit den Bitmap auf Button geht so:
- Auf der Eigenschaftenseite des Buttons ist die Option "Bitmap" unter "Formate" auszuwählen.
- Im Sourcecode des Programms ist dann noch folgendes zu tun... (siehe Beispielfunktion)
void CBitmapButtonDlg::IrgendeineFunktion()
{
//Instance-Handle besorgen
HINSTANCE hInstance = AfxGetInstanceHandle();
//Bitmap-Handle besorgen und Bitmap laden
HBITMAP hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
//Bitmap auf Button bringen
m_button.SetBitmap(hBitmap);
}
-> IDB_BITMAP1 ist die Ressourcen ID des Bildes
-> m_button ist die Membervariable des Buttons
okay, um m_button anzulegen gehst du in den ClassWizard(Strg+W) tuts auch dort gehst Du auf die Registerkarte für Membervariable suchst die Id für den Button, anklicken, dann Variable hinzufügen Name vergeben und aufpassen, das in dem einen Feld weiter unten Control drin steht.
Vielen Dank für Deine Hilfe aber ich komme noch nicht ganz klar
Wo finde ich die Ressourcen ID eines Bildes bzw wo lege ich dies fest
Also von Dir aus gesehen Bildschirm oben Menü Insert dann Ressource Bitmap und nun kannst Du eins selbst zeichnen oder von irgendwo reinladen und hast die ID die du noch ändern kannst Rechst oder bei Properties stehen.
Manuela
Hallo,
also an und ausschalten von Buttonen geht mit ControlVariableButton.EnableWindow(true oder false). Für das Zeitgesteuerte brauchst Du nen Timer, dann geht das auch.
Und das mit den Bitmap auf Button geht so:
- Auf der Eigenschaftenseite des Buttons ist die Option "Bitmap" unter "Formate" auszuwählen.
- Im Sourcecode des Programms ist dann noch folgendes zu tun... (siehe Beispielfunktion)
void CBitmapButtonDlg::IrgendeineFunktion()
{
//Instance-Handle besorgen
HINSTANCE hInstance = AfxGetInstanceHandle();
//Bitmap-Handle besorgen und Bitmap laden
HBITMAP hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
//Bitmap auf Button bringen
m_button.SetBitmap(hBitmap);
}
-> IDB_BITMAP1 ist die Ressourcen ID des Bildes
-> m_button ist die Membervariable des Buttons
okay, um m_button anzulegen gehst du in den ClassWizard(Strg+W) tuts auch dort gehst Du auf die Registerkarte für Membervariable suchst die Id für den Button, anklicken, dann Variable hinzufügen Name vergeben und aufpassen, das in dem einen Feld weiter unten Control drin steht.
Vielen Dank für Deine Hilfe aber ich komme noch nicht ganz klar
Wo finde ich die Ressourcen ID eines Bildes bzw wo lege ich dies fest
Also von Dir aus gesehen Bildschirm oben Menü Insert dann Ressource Bitmap und nun kannst Du eins selbst zeichnen oder von irgendwo reinladen und hast die ID die du noch ändern kannst Rechst oder bei Properties stehen.
Manuela
Super vielen Dank
Das mit den Bitmaps habe ich hinbekommen, nur wird das Bild nicht angezeigt !
(IDB_BITMAP1) kann ich doch so stehen lassen??
Das mit den Bitmaps habe ich hinbekommen, nur wird das Bild nicht angezeigt !
(IDB_BITMAP1) kann ich doch so stehen lassen??
Ja kannst Du, ich bin mir jetzt nicht ganz sicher, aber es könnte sein wenn Du das in ner Funktion machst, das Du da noch ein UpdateData(false) machen mußt, damit es auch gezeichnet wird. Wenn es von anfang an sichtbar sein soll, dann muss es in die Init - Funktion des Dialoges.
Manuela
Das mit den Bitmaps habe ich hinbekommen, nur wird das Bild nicht angezeigt !
(IDB_BITMAP1) kann ich doch so stehen lassen??
Ja kannst Du, ich bin mir jetzt nicht ganz sicher, aber es könnte sein wenn Du das in ner Funktion machst, das Du da noch ein UpdateData(false) machen mußt, damit es auch gezeichnet wird. Wenn es von anfang an sichtbar sein soll, dann muss es in die Init - Funktion des Dialoges.
Manuela
Wohin das UpdateData(false);
oder wo muss ich das in die Init setzen und vorallem was
Das Bild sollte schon von Anfang an zu sehen sein anstatt des Buttons
Wohin das UpdateData(false);
das muss hinter das setBitmap
oder wo muss ich das in die Init setzen und vorallem was
Das Bild sollte schon von Anfang an zu sehen sein anstatt des Buttons
Du kannst per ClassenWizard die Funktion OnInitDialog hinzufügen, und in der mußt du dann alles machen, was gleich von anfang an sichtbar sein soll, also auch das mit dem SetBitmap und natürlich vor load und das alles.
Manuela