Weiteres Problem mit SDI
-
zur GDI+ könnts mal ein Tut fürs FAQ geben
-
Pellaeon schrieb:
zur GDI+ könnts mal ein Tut fürs FAQ geben
Oder fürs Magazin.
Gibts Freiwillige?Bitte da melden: http://www.c-plusplus.net/forum/viewtopic-var-t-is-126710.html
-
Achso also erstelle ich mit CreateSolidBrush nur einen Pinsel der dann das Muster einfarbig malen wird??
Und wie kriege ich den Pinsel ans malen?
Was ist den GDI+??
-
wie der Name der Methode schon sagt, du erstellst einen Brush, das bedeutet noch lange nicht das dieser benutzt wird. Du musst ihn erst mit SelectObject an den CDC binden( also CDC::SelectObject, siehe MSDN)
-
achso jetzt muss ich noch pDC->SelectObject(&MeinBrush); machen??
Der Brush wäre in diesem Fall dann CB. also .....(&CB);
Also wie bei CPen.
Muss ich dann auch noch die Position angeben also MoveTo und LineTo??
-
Also ich hab das jetzt dem entsprechend abgeändert , aber funktionieren tut dat trotzdem nicht. Was habe ich vergessen damit ich einen Gelben Hintergrund bekomme??
[cpp] CBrush pCB; pCB.CreateSolidBrush(RGB(255,255,0)); pDC->SelectObject(&pCB);[/cpp]
-
zeichnest du auch mit dem CDC irgendwo?
-
Also ich schicke einfach mal meine OnDraw damit Ihr sehen könnt was ich bis jetzt gemacht habe. Also mit CDC gezeichnet würde sagen ja da pDC ja ein Pointer auf CDC ist.
void CSDIView::OnDraw(CDC* pDC) { //Überschrift CPen GreenPen; GreenPen.CreatePen(PS_SOLID,3,RGB(0,255,0)); pDC->MoveTo(10,50); pDC->SelectObject(&GreenPen); pDC->LineTo(550,50); CBrush pCB; pCB.CreateSolidBrush(RGB(255,0,0)); pDC->SelectObject(&pCB); pDC->SetTextColor(RGB(0,0,255)); CString m_Ueberschrift = "Dücker Fuhrpark Software"; // Ausgaberechteck berechnen CRect CDrawUeberschrift(200,25,400,25+50); // Text linksbündig mit Tabs-Stops auf 8-fache Zeichenbreite pDC->DrawText(m_Ueberschrift,&CDrawUeberschrift,DT_CENTER|DT_EXPANDTABS|DT_WORDBREAK); //Name des Benutzers CString Name = "Name: "; CString m_Benutzer = "Sebastian Dors"; //Noch manuell bald gibt der Login Dialog die Daten CRect CDrawName(25,60,70,60+50); pDC->DrawText(Name,&CDrawName,DT_LEFT); CRect CDrawBenutzer(80,60,250,60+50); pDC->DrawText(m_Benutzer,&CDrawBenutzer,DT_LEFT); //Personalnummer CString Personalnummer = "Personalnummer: "; CString m_PersonalNr = "2489"; //Wird später auch automatisch hinzugefügt CRect CDrawPNr(370,60,500,60+50); pDC->DrawText(Personalnummer,&CDrawPNr,DT_LEFT); CRect CDrawPersonalNr(510,60,550,60+50); pDC->DrawText(m_PersonalNr,&CDrawPersonalNr,DT_LEFT); CSDIDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // ZU ERLEDIGEN: Hier Code zum Zeichnen der ursprünglichen Daten hinzufügen }
-
Wozu möchtest du das eugentlich Wissen, ist das von wichtiger bedeutung?
-
Ok habe das Problem gelöst
[cpp]CBrush brNew(RGB(0,0,255)); //Creates a blue brush CBrush* pOldBrush = (CBrush*)pDC->SelectObject(&brNew); CRect rc; pDC->GetClipBox(rc); // Gets the co-ordinates of the client // area to repaint. pDC->PatBlt(0,0,rc.Width(),rc.Height(),PATCOPY); // Repaints client area with current brush. pDC->SelectObject(pOldBrush);[/cpp]