Drucken mit Schriftart-Einstellung
-
Hallo,
kann mir jemand verraten, weshalb nachfolgender Code nicht das tut was ich eigentlich erhoffe ... ? Wahrscheinlich bin ich blind, aber es müsste doch möglich sein, die Schriftart für den Druck zu ändern, oder ... ?
BOOL TextDrucken (char* szINText) { PRINTDLG pd={0}; DOCINFO di={0}; di.cbSize=sizeof(DOCINFO); pd.lStructSize=sizeof(PRINTDLG); pd.hDevMode=NULL; pd.hDevNames=NULL; pd.Flags=PD_RETURNDC | PD_NOPAGENUMS | PD_NOSELECTION; pd.hwndOwner=NULL; pd.hDC=NULL; pd.nFromPage=0; pd.nToPage=0; pd.nMinPage=0; pd.nMaxPage=0; pd.nCopies=1; pd.hInstance=NULL; pd.lCustData=0L; pd.lpfnPrintHook=NULL; pd.lpfnSetupHook=NULL; pd.lpPrintTemplateName=NULL; pd.lpSetupTemplateName=NULL; pd.hPrintTemplate=NULL; pd.hSetupTemplate=NULL; if(PrintDlg(&pd)==0) { DeleteDC(pd.hDC); return FALSE; } // Warum kann ich die Font nicht setzen ... ? SelectObject(pd.hDC,MyCreateFont())) // Hiermit erhaltene ich die Font und die folgende MessageBox // zeigt mir diese korrekt auch an ! Aber Drucken tut er nur immer das gleiche char szFont[50]={0}; GetTextFace(pd.hDC,50,szFont); MessageBox(NULL,szFont,"Nachher->",0); // Eigentliches Drucken beginnen wenn nicht möglich, abbrechen if(StartDoc(pd.hDC,&di)<=0) { DeleteDC(pd.hDC); return FALSE; } // Seite starten StartPage(pd.hDC); // Druckausgabe /* int iBreite=(GetDeviceCaps(pd.hDC,HORZRES))-30; int iHoehe=(GetDeviceCaps(pd.hDC,VERTRES))-20; */ TextOut(pd.hDC,10,20,szINText,strlen(szINText)); // Seite beenden EndPage(pd.hDC); EndDoc(pd.hDC); DeleteDC(pd.hDC); return TRUE; } // Diese Funktion ist aus dem SDK geklaut und gibt mir auch 100prozentig ne Schriftart zurück ! HFONT FAR PASCAL MyCreateFont( void ) { CHOOSEFONT cf; LOGFONT lf; HFONT hfont; // Initialize members of the CHOOSEFONT structure. cf.lStructSize = sizeof(CHOOSEFONT); cf.hwndOwner = (HWND)NULL; cf.hDC = (HDC)NULL; cf.lpLogFont = &lf; cf.iPointSize = 0; cf.Flags = CF_SCREENFONTS; cf.rgbColors = RGB(0,0,0); cf.lCustData = 0L; cf.lpfnHook = (LPCFHOOKPROC)NULL; cf.lpTemplateName = (LPSTR)NULL; cf.hInstance = (HINSTANCE) NULL; cf.lpszStyle = (LPSTR)NULL; cf.nFontType = SCREEN_FONTTYPE; cf.nSizeMin = 0; cf.nSizeMax = 0; // Display the CHOOSEFONT common-dialog box. ChooseFont(&cf); // Create a logical font based on the user's // selection and return a handle identifying // that font. hfont = CreateFontIndirect(cf.lpLogFont); return (hfont); }