Struktur OPTITEM (compstui.h)
Struktur OPTITEM digunakan oleh aplikasi CPSUI (termasuk DLL antarmuka printer) untuk menjelaskan satu opsi lembar properti pada halaman lembar properti, jika halaman dijelaskan oleh struktur COMPROPSHEETUI .
Sintaks
typedef struct _OPTITEM {
WORD cbSize;
BYTE Level;
BYTE DlgPageIdx;
DWORD Flags;
ULONG_PTR UserData;
LPTSTR pName;
union {
LONG Sel;
LPTSTR pSel;
} DUMMYUNIONNAME;
union {
PEXTCHKBOX pExtChkBox;
PEXTPUSH pExtPush;
} DUMMYUNIONNAME2;
POPTTYPE pOptType;
DWORD HelpIndex;
BYTE DMPubID;
BYTE UserItemID;
WORD wReserved;
POIEXT pOIExt;
ULONG_PTR dwReserved[3];
} OPTITEM, *POPTITEM;
Anggota
cbSize
Ukuran, dalam byte, dari struktur OPTITEM .
Level
Menentukan tingkat opsi ini dalam tampilan pohon. Untuk informasi selengkapnya, lihat bagian Keterangan di bawah ini.
DlgPageIdx
Mengidentifikasi dialog tempat opsi berada. Menentukan indeks array ke dalam array DLGPAGE yang diarahkan oleh anggota pDlgPage dari struktur COMPROPSHEETUI .
Jika pDlgPage menunjuk ke struktur DLGPAGE yang disediakan CPSUI, CPSUI memasok indeks ini.
Flags
Bendera bit opsional yang memodifikasi karakteristik opsi. Bendera OPTIF_CHANGEONCE ditetapkan oleh CPSUI; semua bendera lainnya diatur oleh pemanggil. Kombinasi bendera berikut dapat diatur.
OPTIF_CALLBACK
Saat pengguna memodifikasi opsi , CPSUI harus memanggil fungsi panggilan balik yang diketik _CPSUICALLBACK yang ditentukan dalam struktur COMPROPSHEETUI .
OPTIF_CHANGED
Fungsi panggilan balik yang diketik _CPSUICALLBACK harus mengatur bendera ini jika memodifikasi opsi, sehingga CPSUI akan memutarnya kembali.
OPTIF_CHANGEONCE
CPSUI mengatur bit ini jika pengguna mengubah opsi.
OPTIF_COLLAPSE
Ciutkan opsi ini dan turunannya agar tidak diperluas di tampilan pohon.
OPTIF_DISABLED
Menonaktifkan opsi agar tidak dapat dimodifikasi pengguna.
OPTIF_ECB_CHECKED
Kotak centang perluasan terkait berada dalam status dicentang.
OPTIF_EXT_IS_EXTPUSH
Jika diatur, anggota pExtPush valid (kecuali NULL).
Jika tidak diatur, anggota pExtChkBox valid (kecuali NULL).
OPTIF_EXT_DISABLED
Kotak centang yang diperluas atau tombol tekan yang diperluas tidak dapat dipilih.
OPTIF_EXT_HIDE
CPSUI tidak akan menampilkan kotak centang yang diperluas atau tombol tekan yang diperluas.
OPTIF_HAS_POIEXT
Jika diatur, anggota pOIExt valid.
OPTIF_HIDE
CPSUI tidak akan menampilkan opsi ini di tampilan pohon. CPSUI memeriksa bendera ini hanya ketika awalnya membuat tampilan pohon, sehingga mengubah bendera dari nilai awalnya tidak berpengaruh.
OPTIF_INITIAL_TVITEM
Jika diatur, CPSUI mengatur fokus jendela awal ke opsi ini saat menampilkan tampilan pohon. CPSUI memperluas simpul pohon dan menggulir opsi ke tampilan seperlunya. Jika opsi disembunyikan, atau jika bendera ini tidak diatur untuk struktur OPTITEM apa pun, CPSUI memilih fokus awal.
OPTIF_NO_GROUPBOX_NAME
Jika tidak diatur, dan pOptype bukan nol, CPSUI menggunakan string pName sebagai judul kotak grup.
Jika diatur, CPSUI menyediakan judul kotak grup.
OPTIF_OVERLAY_NO_ICON
Jika mengatur overlay CPSUI, ikon IDI_CPSUI_NO ke ikon yang terkait dengan opsi. (Lihat anggota Sel/pSel .)
OPTIF_OVERLAY_STOP_ICON
Jika diatur, CPSUI melapisi ikon IDI_CPSUI_STOP ke ikon yang terkait dengan opsi . (Lihat anggota Sel/pSel .)
OPTIF_OVERLAY_WARNING_ICON
Jika diatur, CPSUI melapisi ikon IDI_CPSUI_WARNING ke ikon yang terkait dengan opsi . (Lihat anggota Sel/pSel .)
OPTIF_SEL_AS_HICON
Jika diatur, anggota Sel berisi handel ikon.
Jika tidak diatur, anggota Sel berisi pengidentifikasi sumber daya ikon.
Bendera ini hanya dapat digunakan ketika pOptType berisi NULL.
UserData
Nilai opsional 32-bit yang dapat diatur dan digunakan oleh pemanggil.
(DLL antarmuka printer untuk Unidrv dan Pscript menggunakan anggota ini untuk menyediakan pointer ke struktur USERDATA . Plug-in antarmuka pengguna dapat mereferensikan struktur ini.)
pName
Pengidentifikasi string yang mewakili nama opsi yang dilokalkan dan dapat ditampilkan. Ini bisa menjadi penunjuk 32-bit ke string yang dihentikan NULL, atau dapat menjadi pengidentifikasi sumber daya string 16-bit, dengan HIWORD diatur ke nol. (Lihat juga deskripsi DMPubID, di bawah ini.)
DUMMYUNIONNAME
DUMMYUNIONNAME.Sel
Serikat ini menunjukkan nilai parameter opsi yang saat ini dipilih. Penggunaannya tergantung pada jenis opsi CPSUI.
Jika pOptType adalah NULL, opsi tidak memiliki parameter, sehingga serikat ini mengidentifikasi ikon yang akan dikaitkan dengan simpul tampilan pohon untuk opsi tersebut. Pengidentifikasi ikon dapat berupa handel ikon atau pengidentifikasi sumber daya ikon, seperti yang ditunjukkan oleh OPTIF_SEL_AS_HICON di Bendera.
DUMMYUNIONNAME.pSel
Serikat ini menunjukkan nilai parameter opsi yang saat ini dipilih. Penggunaannya tergantung pada jenis opsi CPSUI.
Jika pOptType adalah NULL, opsi tidak memiliki parameter, sehingga serikat ini mengidentifikasi ikon yang akan dikaitkan dengan simpul tampilan pohon untuk opsi tersebut. Pengidentifikasi ikon dapat berupa handel ikon atau pengidentifikasi sumber daya ikon, seperti yang ditunjukkan oleh OPTIF_SEL_AS_HICON di Bendera.
DUMMYUNIONNAME2
Mendefinisikan serikat DUMMYUNIONNAME2 .
DUMMYUNIONNAME2.pExtChkBox
Penunjuk ke struktur EXTCHKBOX
DUMMYUNIONNAME2.pExtPush
Gabungan ini dapat menjadi penunjuk ke struktur EXTCHKBOX , penunjuk ke struktur EXTPUSH , atau NULL.
Struktur OPTITEM dapat secara opsional memiliki struktur EXTCHKBOX, struktur EXTPUSH, atau tidak keduanya, yang terkait dengannya. Jika gabungan ini bukan NULL, dan jika OPTIF_EXT_IS_EXTPUSH diatur dalam Bendera, pExtPush valid. Jika bendera tidak diatur, pExtChkBox valid.
pOptType
Penunjuk ke struktur OPTTYPE yang menjelaskan jenis tampilan opsi. Jika NULL, opsi tidak memiliki parameter dan digunakan sebagai induk untuk opsi dengan nilai Tingkat yang lebih tinggi. Opsi turunan harus segera mengikuti induk dalam array OPTITEM. (Lihat bagian Keterangan berikut.)
HelpIndex
Indeks file bantuan, yang mengidentifikasi teks bantuan yang akan dikaitkan dengan opsi . Jika nol, teks file bantuan tidak ada untuk opsi ini. Perhatikan bahwa anggota pOIExt dari struktur ini harus diatur dengan alamat struktur OIEXT agar fungsionalitas teks bantuan ada.
DMPubID
Anggota ini dimaksudkan untuk digunakan oleh DLL antarmuka printer, saat membuat lembar properti Properti Dokumen (lihat DrvDocumentPropertySheets). Ini adalah nilai konstan yang menentukan, jika ada, anggota publik struktur DEVMODEW dikaitkan dengan opsi ini. Tabel berikut mencantumkan konstanta yang tersedia, anggota struktur DEVMODE terkait, dan nilai yang diperlukan untuk pName untuk setiap konstanta.
Nilai Konstanta | Nilai pName yang diperlukan | Anggota Struktur |
---|---|---|
DMPUB_COLOR | dmColor | IDS_CPSUI_COLOR_APPERANCE |
DMPUB_COPIES_COLLATE | dmCopies dan dmCollate | IDS_CPSUI_COPIES |
DMPUB_DEFSOURCE | dmDefSource | IDS_CPSUI_SOURCE |
DMPUB_DITHERTYPE | dmDitherType | IDS_CPSUI_DITHERING |
DMPUB_DUPLEX | dmDuplex | IDS_CPSUI_DUPLEX |
DMPUB_FORMNAME | dmFormName | IDS_CPSUI_FORMNAME |
DMPUB_ICMINTENT | dmICMIntent | IDS_CPSUI_ICMINTENT |
DMPUB_ICMMETHOD | dmICMMethod | IDS_CPSUI_ICMMETHOD |
DMPUB_MEDIATYPE | dmMediaType | IDS_CPSUI_MEDIA |
DMPUB_NUP | Tidak terkandung dalam bagian publik DEVMODE. | IDS_CPSUI_NUP |
DMPUB_ORIENTATION | dmOrientation | IDS_CPSUI_ORIENTATION |
DMPUB_OUTPUTBIN | Tidak terkandung dalam bagian publik DEVMODE. | IDS_CPSUI_OUTPUTBIN |
DMPUB_PAGEORDER | Tidak terkandung dalam bagian publik DEVMODE. | IDS_CPSUI_PAGEORDER |
DMPUB_PRINTQUALITY | dmPrintQuality | IDS_CPSUI_PRINTQUALITY atau IDS_CPSUI_RESOLUTION. Jika tidak ditentukan, nama defaultnya adalah IDS_CPSUI_RESOLUTION. |
DMPUB_QUALITY | Tidak terkandung dalam bagian publik DEVMODE. | IDS_CPSUI_QUALITY_SETTINGS |
DMPUB_SCALE | dmScale | IDS_CPSUI_SCALE |
DMPUB_TTOPTION | dmTTOption | IDS_CPSUI_TTOPTION |
DMPUB_NONE | Tidak terkandung dalam bagian publik DEVMODE. | |
Lebih besar dari atau sama dengan DMPUB_USER | Diabaikan oleh CPSUI, dapat menjadi nilai yang ditentukan penelepon. |
CPSUI tidak mempertahankan struktur DEVMODE. Aplikasi ini bertanggung jawab untuk menyalin parameter opsi yang dipilih pengguna ke dalam struktur DEVMODE . CPSUI menggunakan konten DMPubID untuk menentukan penempatan treeview opsi standar, dan untuk menentukan konten tab Tata Letak dan Kertas/Kualitas (lihat anggota pDlgPage dari struktur COMPROPSHEETUI ).
Untuk informasi tambahan tentang menggunakan anggota DMPubID , lihat bagian Keterangan berikut ini.
UserItemID
Nilai opsional yang disediakan aplikasi yang dapat digunakan untuk tujuan identifikasi opsi. Tidak dirujuk oleh CPSUI.
wReserved
Dicadangkan, harus diinisialisasi ke nol.
pOIExt
Penunjuk ke struktur OIEXT opsional. Pemanggil bertanggung jawab untuk mengalokasikan penyimpanan untuk struktur ini.
dwReserved[3]
Dicadangkan, harus diinisialisasi ke nol.
Keterangan
Struktur OPTITEM harus ditempatkan dalam array, dan alamat array harus ditempatkan di anggota pOptItem dari struktur COMPROPSHEETUI .
Anggota Level memungkinkan Anda membuat simpul anak di tampilan pohon. Misalnya, untuk membuat sekumpulan simpul opsi di bawah node induk tingkat 1, tentukan tingkat 2 untuk setiap simpul anak dan sertakan struktur OPTITEM mereka dalam array OPTITEM, segera setelah struktur OPTITEM induk. Dalam struktur OPTITEM induk, pOptType harus NULL.
Simpul akar tampilan pohon adalah tingkat 0. Opsi yang ditampilkan saat pengguna memperluas simpul akar adalah tingkat 1. Jumlah maksimum tingkat adalah 256.
Untuk nilai opsi yang disimpan dalam struktur DEVMODE printer, anggota DMPubID harus mengidentifikasi opsi . Untuk setiap nilai DMPubID yang digunakan, DLL antarmuka printer harus menentukan jenis opsi CPSUI yang tercantum dalam tabel berikut.
Nilai DMPubID | Jenis Opsi CPSUI yang Diperlukan |
---|---|
DMPUB_COLOR | TVOT_2STATES |
DMPUB_COPIES_COLLATE | TVOT_UDARROW plus EXTCHKBOX (Lihat komentar mengikuti tabel ini.) |
DMPUB_DEFSOURCE | TVOT_LISTBOX |
DMPUB_DITHERTYPE | TVOT_LISTBOX |
DMPUB_DUPLEX | TVOT_2STATES atau TVOT_3STATES |
DMPUB_FORMNAME | TVOT_LISTBOX |
DMPUB_ICMINTENT | TVOT_2STATES atau TVOT_3STATES |
DMPUB_ICMMETHOD | TVOT_2STATES atau TVOT_3STATES |
DMPUB_MEDIATYPE | TVOT_LISTBOX |
DMPUB_NUP | TVOT_LISTBOX |
DMPUB_ORIENTATION | TVOT_2STATES atau TVOT_3STATES |
DMPUB_OUTPUTBIN | TVOT_LISTBOX |
DMPUB_PAGEORDER | TVOT_2STATES atau TVOT_3STATES |
DMPUB_PRINTQUALITY | TVOT_LISTBOX |
DMPUB_QUALITY | TVOT_2STATES atau TVOT_3STATES |
DMPUB_SCALE | TVOT_UDARROW |
DMPUB_TTOPTION | TVOT_LISTBOX |
Jika DMPubID DMPUB_COPIES_COLLATE dan printer dapat menyusun salinan, kotak centang yang diperluas (struktur EXTCHKBOX ) harus disediakan. Anggota struktur EXTCHCKBOX harus ditetapkan sebagai berikut:
pExtCheckbox->cbSize = sizeof(EXTCHKBOX);
pExtCheckbox->pTitle = (PWSTR) IDS_CPSUI_COLLATE;
pExtCheckbox->pCheckedName = (PWSTR) IDS_CPSUI_COLLATED;
pExtCheckbox->IconID = IDI_CPSUI_COLLATE;
pExtCheckbox->Flags = ECBF_CHECKNAME_ONLY_ENABLED;
pExtCheckbox->pSeparator = (PWSTR)IDS_CPSUI_SLASH_SEP;
Jika OPTIF_EXT_HIDE tidak diatur dalam Bendera, CPSUI mengaktifkan kotak centang jika pengguna meminta lebih dari satu salinan, dan menonaktifkannya jika hanya satu salinan yang diminta.
Selain itu, CPSUI mengatur teks tampilan opsi untuk disalin untuk satu salinan dan salinan untuk lebih dari satu salinan.
Jika DMPubID DMPUB_COLOR, struktur OPTPARAM pertamanya (Sel=0) harus mewakili Skala Abu-abu, dan pData dalam struktur OPTPARAM harus IDS_CPSUI_GRAYSCALE. Struktur OPTPARAM kedua (Sel=1) harus mewakili Color, dan pData dalam struktur OPTPARAM harus IDS_CPSUI_COLOR. Jika DMPubID opsi lain DMPUB_ICMINTENT dan jika Warna tidak dipilih, CPSUI menonaktifkan opsi yang DMPUB_ICMINTENT nya ditentukan.
CPSUI menonaktifkan pencocokan warna saat Warna tidak dipilih.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | compstui.h (termasuk Compstui.h) |
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