Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Zeichnen im Textfeld

Empfohlene Antworten

Veröffentlicht

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

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.

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.

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.

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

}

};

:P :p

mal probieren ob die Kürzel sich zeigen

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.