Cetak Lembar Properti

Lembar properti Cetak adalah antarmuka pengguna standar yang memungkinkan pengguna menentukan properti pekerjaan cetak tertentu. Lembar properti terdiri dari sekumpulan halaman properti yang bervariasi menurut printer atau aplikasi. Ke subset halaman properti Windows standar, beberapa printer mungkin menambahkan halaman properti khusus driver dan beberapa aplikasi mungkin menambahkan halaman properti khusus aplikasi.

Untuk membuat dan menampilkan lembar properti Cetak , inisialisasi struktur PRINTDLGEX dan teruskan struktur ke fungsi PrintDlgEx .

Ilustrasi berikut ini memperlihatkan lembar properti Cetak yang khas.

printer property sheet

Sebagian besar anggota struktur PRINTDLGEX identik dengan struktur PRINTDLG . Untuk deskripsi tentang cara menggunakan anggota struktur umum untuk berinteraksi dengan kontrol kotak dialog, lihat Cetak Kotak Dialog. Sisa topik ini menjelaskan fitur lembar properti Cetak yang berbeda dari kotak dialog Cetak .

Anda bisa mengkustomisasi lembar properti Cetak dengan menentukan templat kotak dialog kustom untuk bagian bawah halaman Umum dan dengan menentukan halaman properti tambahan untuk mengikuti halaman Umum . Untuk informasi selengkapnya, lihat Menyesuaikan Lembar Properti Cetak.

Anda dapat menerapkan objek panggilan balik untuk menerima pemberitahuan dan pesan dari fungsi PrintDlgEx saat lembar properti ditampilkan. Aplikasi yang menyediakan templat kustom atau halaman tambahan menggunakan objek panggilan balik untuk berkomunikasi dengan lembar properti. Untuk informasi selengkapnya, lihat Objek Panggilan Balik untuk Lembar Properti Cetak.

Lembar properti Cetak menyediakan dukungan untuk menentukan beberapa rentang halaman yang tidak bersebelahan untuk dicetak. Anggota lpPageRanges dari struktur PRINTDLGEX menentukan array struktur PRINTPAGERANGE di mana setiap struktur menentukan rentang halaman.

Lembar properti Cetak menampilkan tombol radio Halaman Saat Ini sebagai bagian dari grup Rentang Halaman tombol radio. Untuk mengontrol tombol radio Halaman Saat Ini , gunakan bendera PD_CURRENTPAGE dan PD_NOCURRENTPAGE di anggota Bendera struktur PRINTDLGEX .

Bagian ini membahas topik berikut.

Mengkustomisasi Lembar Properti Cetak

Anda bisa mengkustomisasi lembar properti Cetak dengan cara berikut:

  • Sediakan templat kustom untuk bagian bawah halaman Umum . Ini memungkinkan Anda untuk menyertakan kontrol tambahan yang unik untuk aplikasi Anda. Fungsi PrintDlgEx menggunakan templat kustom Anda sebagai pengganti templat default.
  • Berikan halaman properti tambahan untuk mengikuti halaman Umum .
  • Berikan objek panggilan balik. Untuk informasi selengkapnya, lihat Objek Panggilan Balik untuk Lembar Properti Cetak.

Anda tidak dapat mengubah bagian atas halaman Umum . Anda tidak dapat mengubah halaman properti yang disediakan oleh pengandar pencetak.

Untuk menyediakan templat kustom untuk halaman Umum:

  1. Buat templat kustom untuk bagian bawah halaman Umum dengan memodifikasi templat PRINTDLGEXORD yang ditentukan dalam file Prnsetup.dlg. Biasanya, templat kustom harus berukuran sama dengan templat default. Namun, Anda dapat memperbesar templat kustom jika Anda menentukan bendera PD_USELARGETEMPLATE untuk membuat halaman Umum yang lebih besar. Pengidentifikasi kontrol yang digunakan dalam templat dialog Cetak default ditentukan dalam file Dlgs.h.

  2. Gunakan struktur PRINTDLGEX untuk mengaktifkan templat sebagai berikut:

    • Jika templat kustom Anda adalah sumber daya dalam aplikasi atau pustaka tautan dinamis, atur bendera PD_ENABLEPRINTTEMPLATE di anggota Bendera . Gunakan anggota hInstance dan lpPrintTemplateName dari struktur untuk mengidentifikasi modul dan nama sumber daya.

      -Atau-

    • Jika templat kustom Anda sudah dalam memori, atur bendera PD_ENABLEPRINTTEMPLATEHANDLE . Gunakan anggota hInstance untuk mengidentifikasi objek memori yang berisi templat.

  3. Jika Anda menggunakan templat kustom untuk menentukan kontrol tambahan, Anda harus menyediakan objek panggilan balik untuk memproses input untuk kontrol Anda. Objek panggilan balik mengimplementasikan metode IPrintDialogCallback::HandleMessage yang menerima pesan yang dikirim ke kotak dialog kustom.

Untuk menyediakan halaman properti tambahan

  1. Gunakan fungsi untuk membuat halaman tambahan.

  2. Gunakan anggota lphPropertyPages dari struktur PRINTDLGEX untuk menentukan array handel ke halaman tambahan.

    Prosedur kotak dialog yang ditentukan saat Anda membuat setiap halaman memproses pesan yang dikirim ke halaman.

  3. Anda mungkin ingin menyediakan objek panggilan balik yang mengimplementasikan antarmuka. Fungsi PrintDlgEx menggunakan antarmuka ini untuk meneruskan ke aplikasi penunjuk ke antarmuka IPrintDialogServices . Prosedur kotak dialog untuk halaman properti tambahan bisa menggunakan antarmuka ini untuk mengambil informasi tentang pencetak yang saat ini dipilih.

Objek Panggilan Balik untuk Lembar Properti Cetak

Aplikasi yang menampilkan lembar properti Cetak dapat mengimplementasikan objek panggilan balik untuk menerima pemberitahuan dan pesan dari fungsi PrintDlgEx saat lembar properti ditampilkan. Untuk menyediakan objek panggilan balik, tentukan penunjuk ke objek di anggota lpCallback dari struktur PRINTDLGEX .

Objek panggilan balik harus mengimplementasikan antarmuka IPrintDialogCallback . Fungsi PrintDlgEx memanggil metode IPrintDialogCallback dalam situasi berikut:

  • Ketika kotak dialog telah diinisialisasi
  • Ketika pengguna memilih printer yang berbeda dari daftar printer terinstal yang ditampilkan oleh lembar properti
  • Saat menerima pesan untuk kotak dialog anak di bagian bawah halaman Umum lembar properti

Objek panggilan balik juga harus mengimplementasikan antarmuka IObjectWithSite . Fungsi PrintDlgEx memanggil metode untuk meneruskan penunjuk ke antarmuka IPrintDialogServices ke aplikasi. Metode IPrintDialogCallback dapat menggunakan antarmuka IPrintDialogServices untuk mengambil informasi tentang printer yang saat ini dipilih. Antarmuka IPrintDialogServices juga berguna untuk aplikasi yang membuat halaman tambahan untuk mengikuti halaman Umum lembar properti Cetak . Prosedur kotak dialog untuk halaman tambahan dapat memanggil metode IPrintDialogServices .