1 Chương6LậptrìnhFile & Print 2 6.1. Cơ chế đọc/ghi tệp Windows cung cấp dịch vụ tệp tin và thư mục khá đầy đủ để xử lý trên ổ đĩa, gồm các hàm API được đóng gói trong các lớp của thư viện MFC. Các lớp gồm CFile : thực hiện các thao tác cơ bản trên file CFileDialog : hộp thoại chọn file CFile object a file data CFileDialog 3 6.2. Lớp CFileDialog Cung cấp một hộp thoại để lựa chọn tệp tin, theo dạng Save hoặc Open Thư viện khai báo lớp này: <afxdlgs.h> Các phương thức cơ bản CFileDialog( BOOL); int DoModal(); CString GetPathName(); CString GetFileName(); 4 6.3. Lớp CFile Cung cấp các chức năng cơ bản về xử lý tệp tin Các phương thức gồm CFile (); CFile( filename, mode ); Open( filename, mode ); mode = CFile::modeRead / modeWrite / modeCreate / modeReadWrite / typeText / typeBinary Close(); Read( void *buff, UINT count ); Write( void *data, UINT count ); Seek( pos ); pos = CFile::begin / current / end static Rename( oldname, newname ); static Remove( filename ); 5 6.4. Cơ chế in tài liệu Windows cung cấp dịch vụ in cho các ứng dụng dưới dạng đồ họa, thực hiện thông qua ngữ cảnh thiết bị máy in (Device Context). Lớp CPrintDialog được cung cấp bởi thư viện MFC cho phép chọn thiết bị máy in đã cài đặt trong hệ thống, gồm: CPrintDialog( BOOL SetupOnly); int DoModal(); int GetCopies(); BOOL GetDefault(); HDC GetPrinterDC(); Tài liệu DC máy in 6 6.5. Các hàm in tài liệu Lấy HDC từ đối tượng chọn máy in, kết nối vào một đối tượng CDC để thực hiện in bằng lệnh sau: CDC :: Attach( HDC DC_của_máy_in ); Xác định kích thước ngang/dọc của trang in int CDC :: GetDeviceCaps( HORZRES / VERTRES ); // đơn vị pixel int CDC :: GetDeviceCaps( HORZSIZE / VERTSIZE ); // đơn vị cm Tài liệu HDC CDC CPrintDialogGetPrinterDC A t t a c h C á c l ệ n h v ẽ & v ă n b ả n 7 6.5. Các hàm in tài liệu Các bước để in Bước 1) Bắt đầu in tài liệu CDC :: StartDoc( LPDOCINFO ); DOCINFO{ cbSize=kích thước, lpszDocName=tên tài liệu in, còn lại =0 } Bước 2) Bắt đầu in một trang mới CDC :: StartPage(); Bước 3) Thực hiện bằng các lệnh xử lý đồ họa, văn bản trên CDC Bước 4) Kết thúc một trang in CDC :: EndPage(); Có thể lặp lại bước 2 để in một trang mới. Bước 5) Kết thúc tài liệu in CDC :: EndDoc(); . 1 Chương 6 Lập trình File & Print 2 6. 1. Cơ chế đọc/ghi tệp Windows cung cấp dịch vụ tệp tin và thư mục khá đầy đủ. SetupOnly); int DoModal(); int GetCopies(); BOOL GetDefault(); HDC GetPrinterDC(); Tài liệu DC máy in 6 6.5. Các hàm in tài liệu Lấy HDC từ đối tượng chọn máy in, kết nối vào một đối tượng CDC để thực. thức cơ bản CFileDialog( BOOL); int DoModal(); CString GetPathName(); CString GetFileName(); 4 6. 3. Lớp CFile Cung cấp các chức năng cơ bản về xử lý tệp tin Các phương thức gồm CFile (); CFile(