Grafik in ComboBox
-
Hallo,
ich nochmal. Ich habe in meinem C++ Grundlagenlehrgang ein Spiel programmiert. Jetzt soll ich ein paar Einstellungen programmieren. Unter anderem soll ich für eine Farbeinstellung in einer comboBox ein kleines Farbiges Quadrat zeichen (also Vorschau) und daneben die Farbe als Text. Wie macht man sowas?
Schon mal danke für die Hilfe!!!
Gruß
krare
-
Benutz doch gleich den ColorDialog: http://msdn.microsoft.com/de-de/library/system.windows.forms.colordialog.aspx
-
Das wäre mir auch deutlich lieber. Weils einfacher ist. Aber da dies eine Aufgabe ist die bewertet wird, muss ich mich an die Vorgaben halten.
-
Guck mal hier, war alles schon mal da gewesen.
Sollte Dir helfen...
http://www.c-plusplus.net/forum/viewtopic-var-t-is-248996.html
Gruß
-
Für Comboboxen gibt's den Stil CBS_OWNERDRAWFIXED, damit kann du die einzelnen Felder selbst zeichnen.
-
Badestrand schrieb:
Für Comboboxen gibt's den Stil CBS_OWNERDRAWFIXED, damit kann du die einzelnen Felder selbst zeichnen.
Aber für .NET?
Simon
-
Hi,
erstmal danke für eure Hilfe werde ich gleich mal ausprobieren. Aber der unten genannte Link führt zu diesem Thread hier. Über die Suche finde ich nix...
Gruß
Melle IV schrieb:
Guck mal hier, war alles schon mal da gewesen.
Sollte Dir helfen...
http://www.c-plusplus.net/forum/viewtopic-var-t-is-248996.html
Gruß
-
Hi,
möglich, dass ich einfach nur zu doof bin. Aber diesen Stil CBS_OWNERDRAWFIXED kann ich nicht finden. Gibts denn in der .Net?
Ich habe folgendes versucht. Aber das funktioniert leider nicht...
Void liefereFarben(){ SolidBrush^ pinsel = gcnew SolidBrush(Color::Black); Graphics ^zeichenflaeche; zeichenflaeche = comboBoxHintergrund->CreateGraphics(); zeichenflaeche->FillRectangle(pinsel,1,1,10,10); }
Gruß
krare
-
Du musst von ComboBox-Control folgende Properties setzen:
comboBox1->DrawMode = DrawMode::OwnerDrawFixed;
Und auf das "DrawItem" Event reagiren:
comboBox1->DrawItem += gcnew DrawItemEventHandler(...);
-
Über das Ereignis DrawItem gehts. DANKE!!!!!
-
Hi,
die Grafik ist jetzt drin. Wenn ich nun eine Auswahl anklicke, dann kann ich das alles schön verarbeiten. ABER. Die ComboBox zeigt mir die Auswahl nicht an. Die Anzeige bleibt leer.
Hat jemand ne Idee woran das liegt?
Gruß
krareSo habe ich die ComboBox befüllt:
private: System::Void comboBoxRahmen_DrawItem(System::Object^ sender, System::Windows::Forms::DrawItemEventArgs^ e) { SolidBrush^ pinsel = gcnew SolidBrush(Color::Black); pinsel->Color = farbe[e->Index]; e->Graphics->FillRectangle(pinsel,e->Bounds.X,e->Bounds.Y,14,14); System::Drawing::Font^ font = gcnew System::Drawing::Font("Arial",10,FontStyle::Regular,GraphicsUnit::Point); pinsel->Color = Color::Black; e->Graphics->DrawString(farbeName[e->Index],font,pinsel,(float)e->Bounds.X+20,(float)e->Bounds.Y); delete pinsel; } private: System::Void einstellungenDialog_Load(System::Object^ sender, System::EventArgs^ e) { for each (Drawing::Color element in farbe) comboBoxRahmen->Items->Add(" "); ...