?grid?
-
Ich möchte in einem dialog eine art grid anlegen um daten darzustellen.
Vereinfacht gesagt:
Ich möchte ein feld von kästchen haben, die ich dann je nach zustand in unterschiedlichen farben ausmale.Habt ihr ein paar Tipps, wie sich das realisieren lässt?
-
im endeffekt könnte es so ähnlich aussehen wie bei minesweeper....
-
Hallo,
probiere es doch mal mit
http://codeproject.com/miscctrl/gridctrl.aspDas ist zwar wesentlich leistungsfähiger als das, was du wohl brauchst, aber eventuell erweitert sich dein Projekt ja noch und du bist froh, rechtzeitig auf "das richtige Pferd" gesetzt zu haben.
Gruß Andreas
-
naja ich halt erstmal dran fest ein einfaches zu zeichnen.
ich fang also erstmal ganz klein an...ich habe nun einen dialog mit mehreren tabs in denen ich dann wieder eigenen panels habe.
in einem davon möchte ich nun einfach ein paar kästchen malen.void CMemControl::OnPaint(HWND hWnd) { PAINTSTRUCT ps; HDC hdc; hdc = ::BeginPaint(hWnd, &ps); UINT index = 0; Shapes[index].rect.left=5; Shapes[index].rect.top=5; Shapes[index].rect.right=10; Shapes[index].rect.bottom=10; // UINT index; for (index = 0; index < SHAPE_COUNT; index++) { Shapes[index].rect.left+=5; Shapes[index].rect.top+=5; Shapes[index].rect.right+=10; Shapes[index].rect.bottom+=10; ::Rectangle ( hdc, Shapes[index].rect.left, Shapes[index].rect.top, Shapes[index].rect.right, Shapes[index].rect.bottom ); } ::EndPaint(hWnd, &ps); // Do not call CDialog::OnPaint() for painting messages }
allerdings ist auf meinem panel leider gar nichts zu sehen
was mach ich denn falsch?!?
-
hat sich soweit erledigt.
so is richtigPAINTSTRUCT ps; CDC *hdc; hdc = BeginPaint(&ps); hdc->SetMapMode(MM_TEXT); CRect rect(5,5,30,30); hdc->Rectangle (rect); EndPaint(&ps);