KIẾN THỨC LẬP TRÌNH

.NET, C++...
Sharepoint
Thiết kế web
Marketing Online
...

Về chúng tôi

THANHNAM SOFTWARE bao gồm đội ngũ các chuyên gia trong lĩnh vực công nghệ thông tin.
Làm việc chuyên nghiệp, có nhiều kinh nghiệm triển khai các dự án trong và ngoài nước:
Tư vấn-triển khai giải pháp EOFFICE, ERP
Xây dựng phần mềm
Thiết kế wesite
Marketing online...

Chúng tôi luôn vì sự hài lòng của khách hàng, mang tới cho quý khách hàng những dịch vụ và sẩn phẩm chất lượng nhất!
 

Thiết lập cho máy in mặc định trước khi in trong MFC

 
In ấn là không thể thiếu trong hầu hết các phần mềm ứng dụng. Trước khi in, đôi khi ta cần thiết lập các thông số để phù hợp với kiểu dữ liệu, kiểu in trang dọc, ngang…
 
1.Vấn đề:
In ấn là không thể thiếu trong hầu hết các phần mềm ứng dụng. Trước khi in, đôi khi ta cần thiết lập các thông số để phù hợp với kiểu dữ liệu, kiểu in trang dọc, ngang…
Trên win NT thì khá đơn giản, ta chỉ cần đoạn mã lệnh sau :
SetDefaultForPriter()
{
    short nPreOrientation;
    CPrintDialog dlgPrint(FALSE, PD_ALLPAGES, this);
        LPDEVMODE pDevMode;
            if (AfxGetApp()->GetPrinterDeviceDefaults(&dlgPrint.m_pd))
            {
            pDevMode = dlgPrint.GetDevMode();
            GlobalUnlock(pDevMode);
            nPreOrientation = pDevMode->dmOrientation;
            pDevMode->dmOrientation = DMORIENT_PORTRAIT;//DMORIENT_LANDSCAPE;
        }
        if (dlgPrint.DoModal() != IDOK)
        {
            pDevMode->dmOrientation = nPreOrientation;
            return;
        }

}
Tuy nhiên, trên win 9x hàm GetPrinterDeviceDefaults  làm việc không tốt, thường gây lỗi. Đọc giả có thể xem dân lập trình c++ kêu gào ầm ĩ trên forum: http://www.codeguru.com/forum/archive/index.php/t-241097.html

2.Giải pháp :
Thay vì việc dùng GetPrinterDeviceDefaults  ta dùng  các hàm API OpenPrinter, GetPrinter, SetPrinter trong thư viên winspool để xét mặc định cho máy in. Lưu ý, trước khi xét chúng ta phải detect được hệ điều hành đang chạy và lấy được tên máy in.


BÀI VIẾT LIÊN QUAN