<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Linie über Bild]]></title><description><![CDATA[<p>Hallo, Leute. Ich brauche dringend Ihre Hilfe.<br />
Eine <a href="http://MDI-Anwendung.In" rel="nofollow">MDI-Anwendung.In</a> neuem Fenster wird ein Bild<br />
geladen und über dieses Bild soll eine Kurve<br />
gezeichnet werden. Bild ist ziemlich groß.<br />
Deshalb ich habe den <strong>VScrollView</strong> benutze.<br />
Eigentlich alles funktioniert, aber überhaupt nicht so,<br />
wie ich es wollte. Kurve, die gezeichnet wird<br />
über Bild, ist auch sehr Gross. Um Sie zusehen<br />
muss auch geschrollt werden. Und hier kommt das Problem.<br />
Sobald ich Fenstergröße geändere, pasiert alles,<br />
wie ich es wollte. Aber wenn ich klicke auf<br />
den Pfeil des Schrollleiste, Linie sofort verschwindet.<br />
Wenn ich schreibe:<br />
<strong>pDoc-&gt;UpdateAllViews(NULL)</strong>;<br />
Linie bleibt, aber das Fenster fackelt<br />
wie verrückt. Hier ist meine Code.<br />
Bestimmt gibt's andere Lösung für dieses Problem.<br />
Ich kenn ihn aber nicht. Und wäre dankbar für jeder Hilfe.</p>
<p>P.S. Um Bilde zu anzeigen, ich benutze CImage.</p>
<pre><code>oid CKurierView::OnDraw(CDC* pDC)
{
	CKurierDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	CPoint pos(GetScrollPosition());
	CRect rect;
	GetClientRect(&amp;rect);
	int width = rect.right - rect.left;
	int height = rect.bottom - rect.top;

	if (pDoc-&gt;GetImage())
	{
		int x = -pos.x;
		int y = -pos.y;
		if (width &gt;= pDoc-&gt;GetImage()-&gt;GetWidth())
			x = (width - pDoc-&gt;GetImage()-&gt;GetWidth())/2;
		if (height &gt;= pDoc-&gt;GetImage()-&gt;GetHeight())
			y = (height - pDoc-&gt;GetImage()-&gt;GetHeight())/2;

		CDC *dc = GetDC();
		CPalette *hOldPal = 0;
		if (pDoc-&gt;GetImage()-&gt;GetPalette())
		{
			hOldPal = dc-&gt;SelectPalette(pDoc-&gt;GetImage()-&gt;GetPalette(), TRUE);
			dc-&gt;RealizePalette();
		}

		if (pDoc-&gt;GetStretchMode())
		{
			SetScrollSizes(MM_TEXT,
				CSize(0,0));
			pDoc-&gt;GetImage()-&gt;Stretch(dc, 0, 0, width, height);
		}
		else
		{
			SetScrollSizes(MM_TEXT,
				CSize(pDoc-&gt;GetImage()-&gt;GetWidth(), pDoc-&gt;GetImage()-&gt;GetHeight()));
			pDoc-&gt;GetImage()-&gt;Draw(dc, x, y);

		//Linie zeichnen
		CPoint Erste, Zweite;
		Erste.x = 70; Erste.y = 360;
		Zweite.x = 300; Zweite.y = 460;
		DrawLine(pDC,Erste ,Zweite);
		pDoc-&gt;UpdateAllViews(NULL);
		}		

		dc-&gt;SelectPalette(hOldPal, TRUE);

		ReleaseDC(dc);
	}
	// TODO: Code zum Zeichnen der systemeigenen Daten hinzufügen		

}

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
void CKurierView::DrawLine(CDC * pDC, CPoint pStart, CPoint pEnd)
{
			CRect lRect;
	GetClientRect(lRect);
	lRect.NormalizeRect();
	CPen lSolidPen (PS_SOLID, 3, RGB(0,0,0));
	CPen *pOldPen;
	pOldPen = pDC-&gt;SelectObject(&amp;lSolidPen);	

	pDC-&gt;MoveTo(pStart );
	pDC-&gt;LineTo(pEnd);

	pDC-&gt;SelectObject(pOldPen);
	ReleaseDC(pDC);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/77114/linie-über-bild</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 15:28:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/77114.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 17 Jun 2004 16:10:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Linie über Bild on Thu, 17 Jun 2004 16:10:21 GMT]]></title><description><![CDATA[<p>Hallo, Leute. Ich brauche dringend Ihre Hilfe.<br />
Eine <a href="http://MDI-Anwendung.In" rel="nofollow">MDI-Anwendung.In</a> neuem Fenster wird ein Bild<br />
geladen und über dieses Bild soll eine Kurve<br />
gezeichnet werden. Bild ist ziemlich groß.<br />
Deshalb ich habe den <strong>VScrollView</strong> benutze.<br />
Eigentlich alles funktioniert, aber überhaupt nicht so,<br />
wie ich es wollte. Kurve, die gezeichnet wird<br />
über Bild, ist auch sehr Gross. Um Sie zusehen<br />
muss auch geschrollt werden. Und hier kommt das Problem.<br />
Sobald ich Fenstergröße geändere, pasiert alles,<br />
wie ich es wollte. Aber wenn ich klicke auf<br />
den Pfeil des Schrollleiste, Linie sofort verschwindet.<br />
Wenn ich schreibe:<br />
<strong>pDoc-&gt;UpdateAllViews(NULL)</strong>;<br />
Linie bleibt, aber das Fenster fackelt<br />
wie verrückt. Hier ist meine Code.<br />
Bestimmt gibt's andere Lösung für dieses Problem.<br />
Ich kenn ihn aber nicht. Und wäre dankbar für jeder Hilfe.</p>
<p>P.S. Um Bilde zu anzeigen, ich benutze CImage.</p>
<pre><code>oid CKurierView::OnDraw(CDC* pDC)
{
	CKurierDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	CPoint pos(GetScrollPosition());
	CRect rect;
	GetClientRect(&amp;rect);
	int width = rect.right - rect.left;
	int height = rect.bottom - rect.top;

	if (pDoc-&gt;GetImage())
	{
		int x = -pos.x;
		int y = -pos.y;
		if (width &gt;= pDoc-&gt;GetImage()-&gt;GetWidth())
			x = (width - pDoc-&gt;GetImage()-&gt;GetWidth())/2;
		if (height &gt;= pDoc-&gt;GetImage()-&gt;GetHeight())
			y = (height - pDoc-&gt;GetImage()-&gt;GetHeight())/2;

		CDC *dc = GetDC();
		CPalette *hOldPal = 0;
		if (pDoc-&gt;GetImage()-&gt;GetPalette())
		{
			hOldPal = dc-&gt;SelectPalette(pDoc-&gt;GetImage()-&gt;GetPalette(), TRUE);
			dc-&gt;RealizePalette();
		}

		if (pDoc-&gt;GetStretchMode())
		{
			SetScrollSizes(MM_TEXT,
				CSize(0,0));
			pDoc-&gt;GetImage()-&gt;Stretch(dc, 0, 0, width, height);
		}
		else
		{
			SetScrollSizes(MM_TEXT,
				CSize(pDoc-&gt;GetImage()-&gt;GetWidth(), pDoc-&gt;GetImage()-&gt;GetHeight()));
			pDoc-&gt;GetImage()-&gt;Draw(dc, x, y);

		//Linie zeichnen
		CPoint Erste, Zweite;
		Erste.x = 70; Erste.y = 360;
		Zweite.x = 300; Zweite.y = 460;
		DrawLine(pDC,Erste ,Zweite);
		pDoc-&gt;UpdateAllViews(NULL);
		}		

		dc-&gt;SelectPalette(hOldPal, TRUE);

		ReleaseDC(dc);
	}
	// TODO: Code zum Zeichnen der systemeigenen Daten hinzufügen		

}

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
void CKurierView::DrawLine(CDC * pDC, CPoint pStart, CPoint pEnd)
{
			CRect lRect;
	GetClientRect(lRect);
	lRect.NormalizeRect();
	CPen lSolidPen (PS_SOLID, 3, RGB(0,0,0));
	CPen *pOldPen;
	pOldPen = pDC-&gt;SelectObject(&amp;lSolidPen);	

	pDC-&gt;MoveTo(pStart );
	pDC-&gt;LineTo(pEnd);

	pDC-&gt;SelectObject(pOldPen);
	ReleaseDC(pDC);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/542550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/542550</guid><dc:creator><![CDATA[Anin]]></dc:creator><pubDate>Thu, 17 Jun 2004 16:10:21 GMT</pubDate></item></channel></rss>