Графический интерфейс GDI в Microsoft Windows


           

Функция диалога для диалоговой панели,


return TRUE ; }

// ---------------------------------------------------- // Функция AbortDlgFunc // Функция диалога для диалоговой панели, // позволяющей прервать процесс печати // ---------------------------------------------------- #pragma argsused

BOOL CALLBACK _export AbortDlgFunc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { // Инициализируем флаги case WM_INITDIALOG: { fAbort = FALSE; hdlgAbort = hdlg; return TRUE; }

case WM_COMMAND: { // Устанавливаем флаг аварийного завершения печати if (wParam == IDOK wParam == IDCANCEL) { fAbort = TRUE; return TRUE; } return FALSE; }

case WM_DESTROY: { hdlgAbort = 0; return FALSE; } } return FALSE; }

// ---------------------------------------------------- // Функция AbortFunc // Обеспечивает возможность работы других // приложений во время печати // ---------------------------------------------------- #pragma argsused

BOOL CALLBACK _export AbortFunc(HDC hdc, int nCode) { MSG msg;

// Второй цикл обработки сообщений while(PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) { if(!hdlgAbort !IsDialogMessage (hdlgAbort, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } }

return(!fAbort); }

// ---------------------------------------------------- // Функция GetPrinterDC // Выводит на экран диалоговую панель "Print", // с помощью которой можно выбрать принтер. // Возвращает идентификатор контекста для // выбранного принтера // ----------------------------------------------------

HDC GetPrinterDC(HWND hwnd) { BOOL fResult;

// Инициализируем структуру PRINTDLG memset(&pd, 0, sizeof(PRINTDLG));

pd.lStructSize = sizeof(PRINTDLG); pd.hwndOwner = hwnd; pd.Flags = PD_RETURNDC;

// Отображаем диалоговую панель fResult = PrintDlg(&pd);

// При необходимости освобождаем память, полученную // функцией PrintDlg для структур DEVMODE и DEVNAMES if(pd.hDevMode != 0) GlobalFree (pd.hDevMode);

if(pd.hDevNames != 0) GlobalFree (pd.hDevNames);

// В случае успешного завершения возвращаем // контекст принтера if(fResult) return pd.hDC;


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