Kelas CPageSetupDialog
Merangkum layanan yang disediakan oleh kotak dialog Penyetelan Halaman OLE umum Windows dengan dukungan tambahan untuk mengatur dan memodifikasi margin cetak.
Sintaks
class CPageSetupDialog : public CCommonDialog
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
CPageSetupDialog::CPageSetupDialog | Membuat CPageSetupDialog objek. |
Metode Publik
Nama | Deskripsi |
---|---|
CPageSetupDialog::CreatePrinterDC | Membuat konteks perangkat untuk pencetakan. |
CPageSetupDialog::D oModal | Menampilkan kotak dialog dan memperbolehkan pengguna membuat pilihan. |
CPageSetupDialog::GetDeviceName | Mengembalikan nama perangkat pencetak. |
CPageSetupDialog::GetDevMode | Mengembalikan DEVMODE printer saat ini. |
CPageSetupDialog::GetDriverName | Mengembalikan pengandar yang digunakan oleh pencetak. |
CPageSetupDialog::GetMargins | Mengembalikan pengaturan margin pencetak saat ini. |
CPageSetupDialog::GetPaperSize | Mengembalikan ukuran kertas pencetak. |
CPageSetupDialog::GetPortName | Mengembalikan nama port output. |
CPageSetupDialog::OnDrawPage | Dipanggil oleh kerangka kerja untuk merender gambar layar halaman yang dicetak. |
CPageSetupDialog::P reDrawPage | Dipanggil oleh kerangka kerja sebelum merender gambar layar halaman yang dicetak. |
Anggota Data Publik
Nama | Deskripsi |
---|---|
CPageSetupDialog::m_psd | Struktur yang CPageSetupDialog digunakan untuk menyesuaikan objek. |
Keterangan
Kelas ini dirancang untuk menggantikan kotak dialog Penyetelan Cetak.
Untuk menggunakan CPageSetupDialog
objek, pertama-tama buat objek menggunakan CPageSetupDialog
konstruktor. Setelah kotak dialog dibuat, Anda dapat mengatur atau mengubah nilai apa pun di m_psd
anggota data untuk menginisialisasi nilai kontrol kotak dialog. Struktur m_psd berjenis PAGESETUPDLG.
Setelah menginisialisasi kontrol kotak dialog, panggil DoModal
fungsi anggota untuk menampilkan kotak dialog dan izinkan pengguna untuk memilih opsi cetak. DoModal
mengembalikan apakah pengguna memilih tombol OK (IDOK) atau Batal (IDCANCEL).
Jika DoModal
mengembalikan IDOK, Anda dapat menggunakan beberapa CPageSetupDialog
fungsi anggota, atau mengakses m_psd
anggota data, untuk mengambil input informasi oleh pengguna.
Catatan
Setelah kotak dialog Penyetelan Halaman OLE umum dihentikan, perubahan apa pun yang dibuat oleh pengguna tidak akan disimpan oleh kerangka kerja. Terserah aplikasi itu sendiri untuk menyimpan nilai apa pun dari kotak dialog ini ke lokasi permanen, seperti anggota dokumen aplikasi atau kelas aplikasi.
Hierarki Warisan
CPageSetupDialog
Persyaratan
Header: afxdlgs.h
CPageSetupDialog::CPageSetupDialog
Panggil fungsi ini untuk membuat CPageSetupDialog
objek.
CPageSetupDialog(
DWORD dwFlags = PSD_MARGINS | PSD_INWININIINTLMEASURE,
CWnd* pParentWnd = NULL);
Parameter
dwFlags
Satu atau beberapa bendera yang bisa Anda gunakan untuk mengkustomisasi pengaturan kotak dialog. Nilai dapat digabungkan menggunakan operator bitwise-OR. Nilai-nilai ini memiliki arti berikut:
PSD_DEFAULTMINMARGINS Mengatur lebar minimum yang diperbolehkan agar margin halaman sama dengan minimum printer. Bendera ini diabaikan jika bendera PSD_MARGINS dan PSD_MINMARGINS juga ditentukan.
PSD_INWININIINTLMEASURE Tidak diimplementasikan.
PSD_MINMARGINS Menyebabkan sistem menggunakan nilai yang ditentukan dalam
rtMinMargin
anggota sebagai lebar minimum yang diizinkan untuk margin kiri, atas, kanan, dan bawah. Sistem mencegah pengguna memasukkan lebar yang kurang dari minimum yang ditentukan. Jika PSD_MINMARGINS tidak ditentukan, sistem mengatur lebar minimum yang diperbolehkan untuk yang diizinkan oleh printer.PSD_MARGINS Mengaktifkan area kontrol margin.
PSD_INTHOUSANDTHSOFINCHES Menyebabkan unit kotak dialog diukur dalam 1/1000 inci.
PSD_INHUNDREDTHSOFMILLIMETERS Menyebabkan unit kotak dialog diukur dalam 1/100 milimeter.
PSD_DISABLEMARGINS Menonaktifkan kontrol kotak dialog margin.
PSD_DISABLEPRINTER Menonaktifkan tombol Printer.
PSD_NOWARNING Mencegah pesan peringatan ditampilkan ketika tidak ada printer default.
PSD_DISABLEORIENTATION Menonaktifkan kontrol dialog orientasi halaman.
PSD_RETURNDEFAULT Penyebab
CPageSetupDialog
mengembalikan struktur DEVMODE dan DEVNAMES yang diinisialisasi untuk printer default sistem tanpa menampilkan kotak dialog. Diasumsikan bahwa keduanyahDevNames
danhDevMode
null; jika tidak, fungsi mengembalikan kesalahan. Jika printer default sistem didukung oleh pengandar printer lama (lebih lama dari Windows versi 3.0), hanyahDevNames
dikembalikan;hDevMode
adalah NULL.PSD_DISABLEPAPER Menonaktifkan kontrol pemilihan kertas.
PSD_SHOWHELP Menyebabkan kotak dialog memperlihatkan tombol Bantuan. Anggota
hwndOwner
tidak boleh NULL jika bendera ini ditentukan.PSD_ENABLEPAGESETUPHOOK Mengaktifkan fungsi hook yang ditentukan dalam
lpfnSetupHook
.PSD_ENABLEPAGESETUPTEMPLATE Menyebabkan sistem operasi membuat kotak dialog dengan menggunakan kotak templat dialog yang diidentifikasi oleh
hInstance
danlpSetupTemplateName
.PSD_ENABLEPAGESETUPTEMPLATEHANDLE Menunjukkan bahwa
hInstance
mengidentifikasi blok data yang berisi templat kotak dialog yang telah dimuat sebelumnya. Sistem mengabaikanlpSetupTemplateName
apakah bendera ini ditentukan.PSD_ENABLEPAGEPAINTHOOK Mengaktifkan fungsi kait yang ditentukan dalam
lpfnPagePaintHook
.PSD_DISABLEPAGEPAINTING Menonaktifkan area gambar kotak dialog.
pParentWnd
Arahkan ke induk atau pemilik kotak dialog.
Keterangan
Gunakan fungsi DoModal untuk menampilkan kotak dialog.
Contoh
void CMyRichEditView::OnPageSetupDlg()
{
CPageSetupDialog psd(PSD_INTHOUSANDTHSOFINCHES | PSD_MARGINS |
PSD_ENABLEPAGEPAINTHOOK, this);
// Initialize margins
psd.m_psd.rtMargin.top = 1000;
psd.m_psd.rtMargin.left = 1250;
psd.m_psd.rtMargin.right = 1250;
psd.m_psd.rtMargin.bottom = 1000;
psd.m_psd.lpfnPagePaintHook = (LPPAGEPAINTHOOK)PaintHook;
if (IDOK == psd.DoModal())
{
// Propagate changes to the app
AfxGetApp()->SelectPrinter(psd.m_psd.hDevNames, psd.m_psd.hDevMode);
}
else
{
TRACE(_T("CommDlgExtendedError returned error %d from ")
_T("CPageSetupDialog::DoModal().\n"),
(int)CommDlgExtendedError());
}
}
CPageSetupDialog::CreatePrinterDC
Membuat konteks perangkat printer dari struktur DEVMODE dan DEVNAMES .
HDC CreatePrinterDC();
Tampilkan Nilai
Tangani ke konteks perangkat printer (DC) yang baru dibuat.
CPageSetupDialog::D oModal
Panggil fungsi ini untuk menampilkan kotak dialog Penyetelan Halaman OLE umum Windows dan perbolehkan pengguna memilih berbagai opsi penyetelan cetak seperti margin pencetakan, ukuran dan orientasi kertas, dan printer tujuan.
virtual INT_PTR DoModal();
Tampilkan Nilai
IDOK atau IDCANCEL. Jika IDCANCEL dikembalikan, panggil fungsi Windows CommDlgExtendedError untuk menentukan apakah terjadi kesalahan.
IDOK dan IDCANCEL adalah konstanta yang menunjukkan apakah pengguna memilih tombol OK atau Batal.
Keterangan
Selain itu, pengguna dapat mengakses opsi penyetelan printer seperti lokasi jaringan dan properti khusus untuk pencetak terpilih.
Jika Anda ingin menginisialisasi berbagai opsi dialog Penyetelan Halaman dengan mengatur anggota m_psd
struktur, Anda harus melakukannya sebelum memanggil DoModal
, dan setelah objek dialog dibangun. Setelah memanggil DoModal
, panggil fungsi anggota lain untuk mengambil pengaturan atau input informasi oleh pengguna ke dalam kotak dialog.
Jika Anda ingin menyebarluaskan pengaturan saat ini yang dimasukkan oleh pengguna, lakukan panggilan ke CWinApp::SelectPrinter. Fungsi ini mengambil informasi dari CPageSetupDialog
objek dan menginisialisasi dan memilih DC printer baru dengan atribut yang tepat.
AfxGetApp()->SelectPrinter(psd.m_psd.hDevNames, psd.m_psd.hDevMode);
Contoh
Lihat contoh untuk CPageSetupDialog::CPageSetupDialog.
CPageSetupDialog::GetDeviceName
Panggil fungsi ini setelah DoModal
untuk mengambil nama printer yang saat ini dipilih.
CString GetDeviceName() const;
Tampilkan Nilai
Nama perangkat yang CPageSetupDialog
digunakan oleh objek.
CPageSetupDialog::GetDevMode
Panggil fungsi ini setelah memanggil DoModal
untuk mengambil informasi tentang konteks CPageSetupDialog
perangkat printer objek.
LPDEVMODE GetDevMode() const;
Tampilkan Nilai
Struktur data DEVMODE , yang berisi informasi tentang inisialisasi perangkat dan lingkungan driver cetak. Anda harus membuka kunci memori yang diambil oleh struktur ini dengan fungsi Windows GlobalUnlock , yang dijelaskan dalam Windows SDK.
CPageSetupDialog::GetDriverName
Panggil fungsi ini setelah memanggil DoModal untuk mengambil nama driver perangkat printer yang ditentukan sistem.
CString GetDriverName() const;
Tampilkan Nilai
Menentukan CString
nama driver yang ditentukan sistem.
Keterangan
Gunakan penunjuk ke objek yang CString
dikembalikan oleh GetDriverName
sebagai nilai lpszDriverName
dalam panggilan ke CDC::CreateDC.
CPageSetupDialog::GetMargins
Panggil fungsi ini setelah panggilan ke untuk DoModal
mengambil margin pengandar perangkat pencetak.
void GetMargins(
LPRECT lpRectMargins,
LPRECT lpRectMinMargins) const;
Parameter
lpRectMargins
Penunjuk ke struktur RECT atau objek CRect yang menjelaskan (dalam 1/1000 inci atau 1/100 mm) margin cetak untuk printer yang saat ini dipilih. Berikan NULL untuk parameter ini, jika Anda tidak tertarik dengan persegi panjang ini.
lpRectMinMargins
Penunjuk ke RECT
struktur atau CRect
objek yang menjelaskan (dalam 1/1000 inci atau 1/100 mm) margin cetak minimum untuk printer yang saat ini dipilih. Berikan NULL untuk parameter ini, jika Anda tidak tertarik dengan persegi panjang ini.
CPageSetupDialog::GetPaperSize
Panggil fungsi ini untuk mengambil ukuran kertas yang dipilih untuk pencetakan.
CSize GetPaperSize() const;
Tampilkan Nilai
Objek CSize yang berisi ukuran kertas (dalam 1/1000 inci atau 1/100 mm) dipilih untuk pencetakan.
CPageSetupDialog::GetPortName
Panggil fungsi ini setelah memanggil DoModal
untuk mengambil nama port pencetak yang saat ini dipilih.
CString GetPortName() const;
Tampilkan Nilai
Nama porta pencetak yang saat ini dipilih.
CPageSetupDialog::m_psd
Struktur jenis PAGESETUPDLG, yang anggotanya menyimpan karakteristik objek dialog.
PAGESETUPDLG m_psd;
Keterangan
Setelah membuat CPageSetupDialog
objek, Anda dapat menggunakan m_psd
untuk mengatur berbagai aspek kotak dialog sebelum memanggil DoModal
fungsi anggota.
Jika Anda memodifikasi anggota data secara m_psd
langsung, Anda akan mengambil alih perilaku default apa pun.
Untuk informasi selengkapnya tentang struktur PAGESETUPDLG , lihat Windows SDK.
Lihat contoh untuk CPageSetupDialog::CPageSetupDialog.
CPageSetupDialog::OnDrawPage
Dipanggil oleh kerangka kerja untuk menggambar gambar layar halaman yang dicetak.
virtual UINT OnDrawPage(
CDC* pDC,
UINT nMessage,
LPRECT lpRect);
Parameter
Pdc
Arahkan ke konteks perangkat printer.
nMessage
Menentukan pesan, menunjukkan area halaman yang saat ini sedang digambar. Bisa jadi salah satu dari yang berikut:
WM_PSD_FULLPAGERECT Seluruh area halaman.
WM_PSD_MINMARGINRECT Margin minimum saat ini.
WM_PSD_MARGINRECT Margin saat ini.
WM_PSD_GREEKTEXTRECT Isi halaman.
WM_PSD_ENVSTAMPRECT Area yang dicadangkan untuk representasi stempel pos.
WM_PSD_YAFULLPAGERECT Area untuk representasi alamat pengembalian. Area ini meluas ke tepi area halaman sampel.
lpRect
Penunjuk ke objek CRect atau RECT yang berisi koordinat area gambar.
Tampilkan Nilai
Nilai bukan nol jika ditangani; jika tidak, 0.
Keterangan
Gambar ini kemudian ditampilkan sebagai bagian dari kotak dialog Penyetelan Halaman OLE umum. Implementasi default menggambar gambar halaman teks.
Ambil alih fungsi ini untuk menyesuaikan gambar area tertentu dari gambar, atau seluruh gambar. Anda dapat melakukan ini dengan menggunakan switch
pernyataan dengan case
pernyataan yang memeriksa nilai nMessage. Misalnya, untuk menyesuaikan penyajian konten gambar halaman, Anda dapat menggunakan kode contoh berikut:
switch (nMessage)
{
case WM_PSD_GREEKTEXTRECT:
DrawMyImage(pDC, lpRect); //draws my special graphic
return 1;
default:
return CPageSetupDialog::OnDrawPage(pDC, nMessage, lpRect);
}
Perhatikan bahwa Anda tidak perlu menangani setiap kasus nMessage. Anda dapat memilih untuk menangani satu komponen gambar, beberapa komponen gambar, atau seluruh area.
CPageSetupDialog::P reDrawPage
Dipanggil oleh kerangka kerja sebelum menggambar gambar layar halaman yang dicetak.
virtual UINT PreDrawPage(
WORD wPaper,
WORD wFlags,
LPPAGESETUPDLG pPSD);
Parameter
wPaper
Menentukan nilai yang menunjukkan ukuran kertas. Nilai ini dapat menjadi salah satu nilai DMPAPER_ yang tercantum dalam deskripsi struktur DEVMODE .
wFlags
Menunjukkan orientasi kertas atau amplop, dan apakah printer adalah perangkat dot-matrix atau HPPCL (Hewlett Packard Printer Control Language). Parameter ini dapat memiliki salah satu nilai berikut:
0x001 Kertas dalam mode lanskap (matriks titik)
0x003 Paper dalam mode lanskap (HPPCL)
0x005 Paper dalam mode potret (matriks titik)
0x007 Paper dalam mode potret (HPPCL)
amplop 0x00b dalam mode lanskap (HPPCL)
amplop 0x00d dalam mode potret (matriks titik)
amplop 0x019 dalam mode lanskap (matriks titik)
amplop 0x01f dalam mode potret (matriks titik)
pPSD
Penunjuk PAGESETUPDLG
ke struktur. Untuk informasi selengkapnya tentang PAGESETUPDLG, lihat Windows SDK.
Tampilkan Nilai
Nilai bukan nol jika ditangani; jika tidak, 0.
Keterangan
Ambil alih fungsi ini untuk menyesuaikan gambar gambar. Jika Anda mengambil alih fungsi ini dan mengembalikan TRUE, Anda harus menggambar seluruh gambar. Jika Anda mengambil alih fungsi ini dan mengembalikan FALSE, seluruh gambar default digambar oleh kerangka kerja.
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk