доброе время суток!
......так сказать застряла
нужно изменить размер и style шрифта при выводе на принтер
нашла ChooseFont но там такой хвост структур и всяких параметров и установок
тянется...
может кто опытный знает как это сделать по-проще...
пишите, жду советов
Здравствуйте, viya, Вы писали:
CHOOSEFONT cf = { 0 };
cf.lStructSize = sizeof(cf);
cf.hDC = your_printer_dc;
cf.Flags = CF_PRINTERFONTS;
LOGFONT ret_font = { 0 };
cf.lpLogFont = &ret_font;
BOOL res = ChooseFont(&cf);
if (res)
{
HFONT font = CreateFontIndirect(&ret_font);
_ASSERTE(font);
HFONT old_font = reinterpret_cast<HFONT>(SelectObject(your_printer_dc, font));
/* print your text here */
SelectObject(your_printer_dc, old_font);
DeleteObject(font);
}
Здравствуйте, viya, Вы писали:
V>нужно изменить размер и style шрифта при выводе на принтер
V>нашла ChooseFont но там такой хвост структур и всяких параметров и установок
V>тянется...
PRINTDLG pd;
memset ((void *) &pd, 0, sizeof(PRINTDLG));
pd.lStructSize = sizeof(PRINTDLG);
pd.hwndOwner = this->GetSafeHwnd();
pd.Flags = PD_RETURNDC;
pd.hInstance = AfxGetInstanceHandle();
pd.nMinPage=0;
pd.nMaxPage=1;
if ( PrintDlg(&pd)!=IDOK) return ;
ghdc = pd.hDC;
if (pd.hDevMode)
GlobalFree (pd.hDevMode);
if (pd.hDevNames)
GlobalFree (pd.hDevNames);
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = "print";
di.lpszOutput = NULL;
CDC dc;
dc.Attach(ghdc);
CFont font;
font.CreatePointFont(100,"Arial");
CFont *pFont=dc.SelectObject(&font);
dc.GetClipBox(&rect);
i=0;xp=400;yp=200;
StartDoc (ghdc, &di);
StartPage (ghdc);
Только не забудь, что у принтеров разрешение разное и удалять временные ресурсы