После такой последовательности действий: Код (Text): PrintDlg(&pd) StartDoc StartPage // здесь что нибедь рисуем в pd.hDC EndPage EndDoc DeleteDC Так вот, печать должна сразу после EndDoc начаться? у меня лично просто печать ставиться в очередь. А как заставить из программы принтер напечатать страницу, а только после этого уже завершить роботу программы ? Код той программы которая есть (прикреплен к теме)
XshStasX, Точно ставится? По идее GetClientRect() на HDC вместо HWND скажет ERROR_INVALID_WINDOW_HANDLE.
XshStasX, Драйвер — любой. Чтобы полюбоваться результатами печати, стóит выбрать что-нибудь PCL-ное, типа HP LaserJet 4. Процедура довольно тривиальна. В мастере добавления принтера выбрать "локальный/не определять автоматически", на следующем экране выбрать порт FILE:, а в списке производителей/моделей — HP/HP LaserJet. При печати на этот принтер спросит, в какой файл сохранить результат. Для просмотра есть всякие PCLReader'ы. Есть другой вариант: что-нибудь вроде PDFCreator. Виртуальный принтер в PDF. И ещё: в составе MS Office 2003 идёт аналогичный драйвер, умеет сохранять в TIFF (компонент Office Tools/Microsoft Office Document Imaging/Microsoft Office Document Image Writer). Наверняка и в более новых офисах есть аналог (что-то про XPS). В общем-то, принтер физически и не нужен для теста программы.