Zum Inhalt springen

Zeichnen im Textfeld


Empfohlene Beiträge

Hallo zusammen,

ich hab ein Dialogfeld, auf dem ich zeichnen möchte, genauer gesagt ein Polygon. Mein Problem besteht darin, dass das ganze in ein Textfeld oder ein anderes Feld gezeichnet werden soll. Wenn ich nämlich den u.g. Code ausführe, wird einfach auf die Maske gepinselt und die Steuerelemente werden einfach überschrieben.

Weiß also jemand, wie ich Zugriff auf einzelne Felder hab, um darin zu zeichnen?

Danke.

Gruß MW

Hier noch ein paar Codefetzen...

.

CClientDC Rand(this);

CPoint punkt[6];

CRgn region;

CRgn *reg = region;

.

.

.

Rand.MoveTo(k, y);

region.CreatePolygonRgn(punkt, 6, ALTERNATE);

Rand.FrameRgn(reg, Rand.GetCurrentBrush(), 1, 1);

Link zu diesem Kommentar
Auf anderen Seiten teilen

Möchtest du auf dem Dialogfeld zeichen, oder möchtest

in einem EditCtrl zeichen?

Innerhalb eines EditCtrls zeichen ist nicht ganz einfach.

Ich würde sagen das du dir das noch mal überlegen solltest ob

das wirklich notwendig ist. Man könnte zum beispiel optisch

so tun als wenn, obwohl es zwei Fenster sind.

Ich bin nicht ganz sicher aber vieleicht hilft auch ein RichEditCtrl.

Würde die ganze Sache dann aber in eine ganz andere Richtung

drängen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von idefix

Möchtest du auf dem Dialogfeld zeichen, oder möchtest

in einem EditCtrl zeichen?

Hi. Also das ganze soll nur innerhalb eines Edit-Controls (kann auch etwas vergleichbares sein)gezeichnet werden. Damit soll die Ausgabe vom restlichen Dialogfeld und den anderen Steuerelementen abgegrenzt werden.

Innerhalb eines EditCtrls zeichen ist nicht ganz einfach.

Ich würde sagen das du dir das noch mal überlegen solltest ob

das wirklich notwendig ist.

Hast du irgendeinen Hinweis? Eventuell einen Link? Würde mich in die Sache reinarbeiten. Das ist es mir wert.

Man könnte zum beispiel optisch

so tun als wenn, obwohl es zwei Fenster sind.

Über diese Möglichkeit hab ich auch schon gelesen. Ist das aber nicht zu umständlich?

Ich bin nicht ganz sicher aber vieleicht hilft auch ein RichEditCtrl.

Würde die ganze Sache dann aber in eine ganz andere Richtung

drängen.

Meines Wissens unterstützt RichEdit nur Text.

Und danke für erste.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ein RichEdit kann Ole Objekte (ActiveX Ctlrs) aufnehmen. Da die

Eigenschaften des ActiveX Ctrls frei definierbar sind kannst du

alles mögliche machen. Ist aber nicht ganz einfach. Müsstest dich

mit COM, Intefaces, Reg und so auseinandersetzen. Problem

wird dann wahrscheinlich die Plazierung sein.

EditCtrls sind für Eingaben gemacht. Wenn darin gezeichnet werden

soll wird auch die Eingabe und das Zeichnen der Eingabe, Cut&Paste

und so überschrieben. Kann man dann selber wieder einbauen.

Beispiele habe ich leider nicht zur Hand, aber kannst ja mal

WM_PAINT überschreiben. Nur so um abzuschätzen ob sich der Aufwand

lohnt.

Hege den Verdacht das du eigentlich keine Eingabe brauchst, sonder mehr

Text mit Zeichnen was eigentlich eher ein StaticCtlr ist. Was die Sache

enorm vereinfachen wird.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ansonsten

kann man auch folgendes machen

CMyDraw::public CWnd

{

OnPaint()

{

//Malen nach Zahlen

}

};

CEditFrame::public CWnd

{

CEdit m_Edit;

CMyDraw m_MyDraw;

BOOL Create(...)

{

//Rect soaufteilen das es passt

//Easy go

m_Edit.Create(...,this,.);

m_MyDraw.Create(...,this,);

CWnd::Create(..,&Rect...);

}

};

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi idefix,

großes Lob und vielen Dank für die vielen nützlichen Tipps. Vor allem der Link zu dem Progrämmchen war sehr hilfreich.

Hab aber in Sachen Grafikprogrammierung vorgeschlagen gekriegt, das ganze mit QT von Trolltech zu versuchen. Da gibt´s auch schon einige Threads drüber, ist denk ich von allem die einfachste Lösung, auch wenn das ganze viel Einarbeitungszeit beansprucht. Außerdem ist QT plattformunabhängig.

Gruß

MW

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...