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.

SDI/MDI mit CEditView/CRicheditView - HowTo

Empfohlene Antworten

Veröffentlicht

Servus,

Ich habe mich bisher fast ausschlieslich mit dialogbasierenden Anwendungen

beschäftigt. Jetzt suche ich nach einem gut dokumentierten Tutorial zu o.g.

Thema. Etwas wo schrittweise der Aufbau einer solchen Anwendung mit dem

VST/VC++ 6.0 erklärt wird. Die MSDN Beispiele WORDPAD,MULTIPAD,SUPERPAD

sind leider schon fertig. Ich such etwas, wo man den Aufbau und die Zusammen-

hänge nachvollziehen kann.

TinTin

So,

es scheint ja keiner was bzgl. eines guten Tutorials zu wissen, schade.

Nun schlage ich mich selber mit diesem Thema herum. Ich habe auch mittlerweile

ein MDI Projekt mit einem CEditView auf die beinegestellt und die Druckerei so

einigermassen im Griff. Jetzt suche ich nach einer Möglichkeit in der View den

Font und PrinterFont vorzubelegen, so dass es standardmässig mit Courier New

belegt ist.

Wo ist denn die Stelle an der ich das am besten Anbringe?

TinTin <- der langsam verzweifelt weil er keine guten Beispiele findet.

mein Tipp: beim selbermachen wirst dus sehr schwer haben!

Schnapp dir einen der das schon 100 Mal gemacht hat, und lass es dir am PC mit Visual Studio 6 vorführen... Hat bei mir gut geklappt....

Problem: Man braucht einen Guru dazu *g*

Schnapp dir einen der das schon 100 Mal gemacht hat, und lass es dir am PC mit Visual Studio 6 vorführen... Hat bei mir gut geklappt....

Und wo soll ich mir den herholen? Kann ich mir irgendwo einen wegnehmen?

Wo stehen die denn rum?

;)

TinTin

So, ich habs geschafft. Ich bin mir zwar nicht sicher ob das der beste weg ist

aber es funktioniert erst mal.


CMyView::CPrint2View()

{

   m_cfoScreen = new CFont();

}


CMyView::~CPrint2View()

{

   delete m_cfoScreen;

}


void CMyView::OnInitialUpdate() 

{

	CEditView::OnInitialUpdate();


	LOGFONT lf;

	lf.lfHeight =-16;

	lf.lfWidth = 0;

	lf.lfEscapement = 0;

	lf.lfOrientation = 0;

	lf.lfWeight = 400;

	lf.lfItalic = 0;

	lf.lfUnderline = 0;

	lf.lfStrikeOut = 0;

	lf.lfCharSet = 0;

	lf.lfOutPrecision = 3;

	lf.lfClipPrecision = 2;

	lf.lfQuality = 1;

	lf.lfPitchAndFamily = 49;

	strcpy(lf.lfFaceName, _T("Courier New"));

	m_cfoScreen->CreateFontIndirect(&lf);

	SetFont(m_cfoScreen);

        SetPrinterFont(m_cfoScreen);

}

Der eingestellte Font ist Courier New, Standard, 12, Westlich.

Für weitere Anregungen und Verbesserungsvorschläge bin ich jetzt schon

dankbar.

TinTin

@Klotzkopp:

Danke, habe ich berücksichtigt.

@Alle:

So, jetzt stehe ich vor dem nächsten Problem. Ich möchte, dass beim Laden der

View eine festegelegte Textdatei in die EditView geladen wird. Wo stelle ich das

am geschicktesten an. Ich denke, dass die Serialize() - Funktion ist ein Ansatz

den ich versuchen werde.

TinTin

  • 1 Monat später...

So, lange Zeit ist vergangen und ich bin mitlerweile bei einem MDI

Projekt mit CRichEditView. Das ganze ist ein kleiner Editor (Übung).

Jetzt habe ich angefangen mich mit der Druckerei zu beschäftigen.

Setenränder setzen mit SetMargin und Ausdruck funktioniert auch.

Mein Problem ist jedoch, dass der Drucker immer ein Blatt zuviel

ausspuckt, d.h. nach dem letzten bedruckten Blatt kommt immer

noch ein leeres Blatt hinterher.

Das ist der momentane Code für das Drucken


BOOL CRichPrintView::OnPreparePrinting(CPrintInfo* pInfo)

{

	SetMargins(CRect(720, 720, 720, 720));


	return  DoPreparePrinting(pInfo);

}


void CRichPrintView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)

{

	CRichEditView::OnBeginPrinting(pDC, pInfo);

}


void CRichPrintView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)

{

	CRichEditView::OnEndPrinting(pDC, pInfo);

}

Wenn ich
BOOL CRichPrintView::OnPreparePrinting(CPrintInfo* pInfo)

{

	SetMargins(CRect(720, 720, 720, 720));

	Info->SetMaxPage(1);

	return  DoPreparePrinting(pInfo);

}

eintrage, bekomme ich nur eine Seite, was logisch ist.

Wie bekomme ich raus wieviele Seiten mein Dokument hat, damit ich das Ganze mit SetMaxPage() angeben kann.

Ich hoffe ich habe mich verständlich ausgedrückt.

TinTin

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.