TinTin Geschrieben 18. Januar 2006 Geschrieben 18. Januar 2006 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 Zitieren
TinTin Geschrieben 19. Januar 2006 Autor Geschrieben 19. Januar 2006 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. Zitieren
ITSE Geschrieben 19. Januar 2006 Geschrieben 19. Januar 2006 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* Zitieren
TinTin Geschrieben 20. Januar 2006 Autor Geschrieben 20. Januar 2006 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 Zitieren
TinTin Geschrieben 20. Januar 2006 Autor Geschrieben 20. Januar 2006 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 Zitieren
Klotzkopp Geschrieben 20. Januar 2006 Geschrieben 20. Januar 2006 new und delete ist hier unnötig. Mach m_cfoScreen von einem CFont* zu einem CFont-Member. Zitieren
TinTin Geschrieben 20. Januar 2006 Autor Geschrieben 20. Januar 2006 @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 Zitieren
TinTin Geschrieben 10. März 2006 Autor Geschrieben 10. März 2006 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 Zitieren
Empfohlene Beiträge
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.