Bagikan melalui


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 CPageSetupDialogfungsi 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

CObject

CCmdTarget

CWnd

CDialog

CCommonDialog

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 keduanya hDevNames dan hDevMode null; jika tidak, fungsi mengembalikan kesalahan. Jika printer default sistem didukung oleh pengandar printer lama (lebih lama dari Windows versi 3.0), hanya hDevNames 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 dan lpSetupTemplateName.

  • PSD_ENABLEPAGESETUPTEMPLATEHANDLE Menunjukkan bahwa hInstance mengidentifikasi blok data yang berisi templat kotak dialog yang telah dimuat sebelumnya. Sistem mengabaikan lpSetupTemplateName 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

Sampel MFC WORDPAD
Kelas CCommonDialog
Bagan Hierarki