Операционная система Windows 95 для программиста



         

Исходные тексты приложения RtfPad - часть 8


// Закрываем файл _lclose(hFile);

// Сбрасываем признак изменения содержимого окна // редактора текста SendMessage(hwndEdit, EM_SETMODIFY, FALSE, 0L); } } }

// ----------------------------------------------------- // Функция OpenCallback // ----------------------------------------------------- DWORD CALLBACK OpenCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb) { // Выполняем чтение блока данных длиной cb байт *pcb = _lread((HFILE)dwCookie, pbBuff, cb); if(*pcb <= 0) *pcb = 0; return 0; }

// ----------------------------------------------------- // Функция FilePrint // ----------------------------------------------------- void FilePrint(void) { FORMATRANGE fr; DOCINFO docInfo; LONG lLastChar, lTextSize; PRINTDLG pd; int nRc; HDC hPrintDC;

// Инициализируем поля структуры PRITDLG memset(&pd, 0, sizeof(pd)); pd.lStructSize = sizeof(PRINTDLG); pd.hwndOwner = hwndEdit; pd.hInstance = (HANDLE)hInst; pd.Flags = PD_RETURNDC | PD_NOPAGENUMS | PD_NOSELECTION | PD_PRINTSETUP | PD_ALLPAGES; pd.nFromPage = 0xffff; pd.nToPage = 0xffff; pd.nMinPage = 0; pd.nMaxPage = 0xffff; pd.nCopies = 1;

// Выводим на экран диалоговую панель, предназначенную // для печати документа if(PrintDlg(&pd) == TRUE) { hPrintDC = pd.hDC;

// Инициализируем поля структуры FORMATRANGE memset(&fr, 0, sizeof(fr));

// Будем печатать с использованием контекста // принтера, полученного от функции PrintDlg fr.hdc = fr.hdcTarget = hPrintDC;

// Печатаем весь документ fr.chrg.cpMin = 0; fr.chrg.cpMax = -1;

// Устанавливаем размеры страницы в TWIPS-ах fr.rcPage.top = 0; fr.rcPage.left = 0; fr.rcPage.right = MulDiv(GetDeviceCaps(hPrintDC, PHYSICALWIDTH), 1440, GetDeviceCaps(hPrintDC, LOGPIXELSX));

fr.rcPage.bottom = MulDiv(GetDeviceCaps(hPrintDC, PHYSICALHEIGHT),1440, GetDeviceCaps(hPrintDC, LOGPIXELSY)); fr.rc = fr.rcPage;

// Оставляем поля if(fr.rcPage.right > 2*3*1440/4+1440) fr.rc.right -= (fr.rc.left = 3*1440/4); if(fr.rcPage.bottom > 3*1440) fr.rc.bottom -= (fr.rc.top = 1440);




Содержание  Назад  Вперед