Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Fenster aus Dialogbox eröffnen?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
06.06.2004, 22:18 Uhr
Vierie



Hallo!

Ich möchte gern innerhalb einer Dialogbox ein Fenster einbinden, in das ich eine Graphikausgaben einbauen kann. Leider ist mir nicht ganz klar, wie ich das programmiertechnisch hinkriege. Kann mir jemand helfen?

Gruß
Vierie
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.06.2004, 22:25 Uhr
~mike
Gast


Hi!
Also ich verstehe leider nicht ganz was du meinst Wenn du in einem Dialog zeichnen willst geht das in OnDraw. Du kannst natürlich auch nur einen Bereich auswählen und in dem zeichnen. Bei den Steuerelementen ist ein Bild Steuerelement dabei (weiß leide rnicht mehr wie das heißt - ich glaube eine Landschaft ist in dem Icon dargestellt). Dort holst du dir einfach den DC und dann kannst du dirn zeichnen. Oder wenns mehr können soll einfach eine Klasse davon ableiten.

mfg

Dieser Post wurde am 06.06.2004 um 22:27 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.06.2004, 22:58 Uhr
Vierie



Ich möchte eine Auswertung von Daten graphisch darstellen. Da die Länge dieser Auswertung logischerweise von den aufgezeichneten Daten abhängt, brauche ich die Möglichkeit diese Aufzeichnung hoch und runter scrollen zu können. Deshalb denke ich nicht, dass das in einer Dialogbox möglich ist. (Lass mich gern eines besseren belehren )

Die Dialogbox ist im Programm schon angelegt, wenn auch nicht von mir, ich muss also darauf aufsetzen und kann nicht einfach ein Fenster öffnen, um da drin die Daten darzustellen.

Jetzt ist es hoffentlich klarer.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.06.2004, 00:09 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


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);


    
}  


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.06.2004, 09:23 Uhr
~Vierie
Gast


Ich hatte mir überlegt, das Fenster irgendwie als Objekt von CScrollView anzulegen und von der Dialogbox aufzurufen. Geht das nicht irgendwie?

Gruß
Vierie
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.06.2004, 09:51 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
In folgendem Artikel hats einer probiert:
www.codeproject.com/docview/dynviews.asp?df=100

Aber ich glaube es ist besser (einfacher), wenn du da ein Steuerelement nimmst.
mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
07.06.2004, 10:05 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Da CStatic von nem CWnd abgeleitet ist, kannst du auch dessen Methoden benutzen:
Z.B.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwnd.3a3a.cwnd.asp

mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
07.06.2004, 10:07 Uhr
rene rosenberger



ohne den button musst du den code in eine initialisierungsfunktion des festers schreiben. z.b: oninitdialog();
--
gruesse rene
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
07.06.2004, 15:01 Uhr
~Vierie
Gast


Ich hab's geschafft. Danke an alle.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: