Wie einmalwar es so weit...
Eine Anforderung kommt rein... Neue Oberfläche gewünscht, Anordnung in einem Grid,
Verwaltungsbuttons und Konfigurationsmöglichkeiten... ok, alles kein Problem.
Aber dann, der Schock :-o
Das GUI soll ein TabControl enthalten, welches die Laschen ( = Reiter, Karteikärtchen, etc...) nicht oberhalb,
sondern linksbündig anzeigt! *schock*
Ich habe zwar vorher schon einige Male im Internet Beispiele selbst gezeichneter TabControls gesehen,
wollte aber nun nicht unbedingt einen riesen Aufwand investieren.
Doch Gott sei Dank gibt es die MSDN :D
Nach kurzer Suche bin ich auf folgende Seite gestoßen:
Gewusst wie: Anzeigen von seitlich ausgerichteten Registerkarten mit TabControl
Hier der Code für das Zeichnen der Laschen in VC++.net (Laschen links):
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void ClientTabPages::Resourcen::drawTabCtrlItem (System::Object ^sender, DrawItemEventArgs ^e) | |
{ | |
System::Drawing::Graphics ^g = e->Graphics; | |
System::Drawing::Brush ^brush; | |
TabPage ^page = this->m_tabCtrl->TabPages[e->Index]; | |
System::Drawing::Rectangle rect = this->m_tabCtrl->GetTabRect(e->Index); | |
if (e->State != DrawItemState::Selected) | |
{ | |
brush = gcnew System::Drawing::SolidBrush(this->BackColor); | |
g->FillRectangle(brush, e->Bounds); | |
} | |
else | |
{ | |
e->DrawBackground(); | |
} | |
brush = gcnew System::Drawing::SolidBrush(this->ForeColor); | |
g->DrawString(page->Text, this->Font, brush, rect, gcnew StringFormat(StringFormatFlags::DirectionVertical)); | |
} |
weiterführender Link:
So funktioniert das ganze in WPF - Link
Keine Kommentare:
Kommentar veröffentlichen