Veröffentlicht 18. Januar 200619 j 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
19. Januar 200619 j 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.
19. Januar 200619 j 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*
20. Januar 200619 j 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
20. Januar 200619 j 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
20. Januar 200619 j new und delete ist hier unnötig. Mach m_cfoScreen von einem CFont* zu einem CFont-Member.
20. Januar 200619 j @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
10. März 200619 j 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.