Zum Inhalt springen

SDI/MDI mit CEditView/CRicheditView - HowTo


TinTin

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

@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

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 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

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