Chương 6Lập trình File & Print... 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ệ
Trang 1Chương 6
Lập trình File & Print
Trang 26.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
Trang 36.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();
Trang 46.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 );
Trang 56.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();
Tài liệu DC
máy in
Trang 66.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
CPrintDialog GetPrinterDC
Atta ch
Các lệnh vẽ & văn bản
Trang 76.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();