006
07.06.2004, 09:53 Uhr
~Vierie
Gast
|
Zitat: |
Windalf postete hoi probier mal so
mach dir einfach einen dialog auf den packst du so ein staticfeld das teil nennst du dann IDC_STATIC_DIAGRAMM...
dann packst du noch einen button drauf und packst dann diese methode für den button rein... je nachdem was du malen oder zeichen darstellen oder was auch immer du willst kannst du den code leicht entsprechend anpassen...
C++: |
void CSinusmalenDlg::OnButton1(){
CWnd *wp; CDC *pDC; CRect Rect; double y,von,bis; int i,width,height; von=-1.2; bis=+1.2;
wp = GetDlgItem(IDC_STATIC_DIAGRAMM); pDC = wp->GetDC(); wp->GetWindowRect(&Rect); width=abs(Rect.TopLeft().x-Rect.BottomRight().x); height=abs(Rect.TopLeft().y-Rect.BottomRight().y); for(i=0;i<width;++i){ double wert=sin(i*3.14/180); if(bis>=wert && von<=wert){ y=height-(height*(wert-von)/(bis-von)); pDC->SetPixel(i,(int)y,RGB(255,0,0)); } }
wp->ReleaseDC(pDC);
}
|
|
Ich hab das jetzt mal ausprobiert. Da ist nur ein Problem, wenn die Ausgabe aus dem Fenster rausgeht, wird sie einfach nicht mehr angezeigt. Das kann ich aber nicht verwenden, weil ich die Daten, die da aufgezeichnet werden sollen, vorher nicht abschätzen kann und alle angezeigt werden müssen. Dazu benötige ich irgendeine Möglichkeit zu scrollen.
Gibt es keine Möglichkeit, diese Ausgabe direkt, ohne den Button aufzuzeichnen? |