CView
Kelas
Menyediakan fungsionalitas dasar untuk kelas tampilan yang ditentukan pengguna.
Sintaks
class AFX_NOVTABLE CView : public CWnd
Anggota
Konstruktor yang Dilindungi
Nama | Deskripsi |
---|---|
CView::CView |
Membuat CView objek. |
Metode Publik
Nama | Deskripsi |
---|---|
CView::DoPreparePrinting |
Menampilkan kotak dialog Cetak dan membuat konteks perangkat printer; panggilan saat mengambil alih OnPreparePrinting fungsi anggota. |
CView::GetDocument |
Mengembalikan dokumen yang terkait dengan tampilan. |
CView::IsSelected |
Menguji apakah item dokumen dipilih. Diperlukan untuk dukungan OLE. |
CView::OnDragEnter |
Dipanggil saat item pertama kali diseret ke wilayah seret dan letakkan tampilan. |
CView::OnDragLeave |
Dipanggil saat item yang diseret meninggalkan wilayah seret dan letakkan tampilan. |
CView::OnDragOver |
Dipanggil saat item diseret di atas wilayah seret dan letakkan tampilan. |
CView::OnDragScroll |
Dipanggil untuk menentukan apakah kursor diseret ke wilayah gulir jendela. |
CView::OnDrop |
Dipanggil saat item telah dihilangkan ke wilayah seret dan letakkan tampilan, handler default. |
CView::OnDropEx |
Dipanggil saat item telah dihilangkan ke wilayah seret dan letakkan tampilan, handler utama. |
CView::OnInitialUpdate |
Dipanggil setelah tampilan pertama kali dilampirkan ke dokumen. |
CView::OnPrepareDC |
Dipanggil sebelum OnDraw fungsi anggota dipanggil untuk tampilan layar atau OnPrint fungsi anggota dipanggil untuk mencetak atau mencetak pratinjau. |
CView::OnScroll |
Dipanggil saat item OLE diseret di luar batas tampilan. |
CView::OnScrollBy |
Dipanggil saat tampilan yang berisi item OLE aktif di tempat digulir. |
Metode yang Dilindungi
Nama | Deskripsi |
---|---|
CView::OnActivateFrame |
Dipanggil saat jendela bingkai yang berisi tampilan diaktifkan atau dinonaktifkan. |
CView::OnActivateView |
Dipanggil saat tampilan diaktifkan. |
CView::OnBeginPrinting |
Dipanggil ketika pekerjaan cetak dimulai; ambil alih untuk mengalokasikan sumber daya antarmuka perangkat grafis (GDI). |
CView::OnDraw |
Dipanggil untuk merender gambar dokumen untuk tampilan layar, pencetakan, atau pratinjau cetak. Implementasi diperlukan. |
CView::OnEndPrinting |
Dipanggil ketika pekerjaan cetak berakhir; mengambil alih untuk membatalkan alokasi sumber daya GDI. |
CView::OnEndPrintPreview |
Dipanggil saat mode pratinjau keluar. |
CView::OnPreparePrinting |
Dipanggil sebelum dokumen dicetak atau dipratinjau; ambil alih untuk menginisialisasi kotak dialog Cetak. |
CView::OnPrint |
Dipanggil untuk mencetak atau mempratinjau halaman dokumen. |
CView::OnUpdate |
Dipanggil untuk memberi tahu tampilan bahwa dokumennya telah dimodifikasi. |
Keterangan
Tampilan dilampirkan ke dokumen dan bertindak sebagai perantara antara dokumen dan pengguna: tampilan merender gambar dokumen di layar atau printer dan menafsirkan input pengguna sebagai operasi pada dokumen.
Tampilan adalah anak dari jendela bingkai. Lebih dari satu tampilan dapat berbagi jendela bingkai, seperti dalam kasus jendela pemisah. Hubungan antara kelas tampilan, kelas jendela bingkai, dan kelas dokumen dibuat oleh CDocTemplate
objek. Saat pengguna membuka jendela baru atau memisahkan jendela yang sudah ada, kerangka kerja membuat tampilan baru dan melampirkannya ke dokumen.
Tampilan hanya dapat dilampirkan ke satu dokumen, tetapi dokumen dapat memiliki beberapa tampilan yang melekat padanya sekaligus — misalnya, jika dokumen ditampilkan di jendela pemisah atau di beberapa jendela anak dalam aplikasi antarmuka beberapa dokumen (MDI). Aplikasi Anda dapat mendukung berbagai jenis tampilan untuk jenis dokumen tertentu; misalnya, program pemrosesan kata mungkin menyediakan tampilan teks lengkap dokumen dan tampilan kerangka yang hanya memperlihatkan judul bagian. Jenis tampilan yang berbeda ini dapat ditempatkan di jendela bingkai terpisah atau di panel terpisah dari satu jendela bingkai jika Anda menggunakan jendela pemisah.
Tampilan mungkin bertanggung jawab untuk menangani beberapa jenis input yang berbeda, seperti input keyboard, input atau input mouse melalui seret dan letakkan, serta perintah dari menu, toolbar, atau bilah gulir. Tampilan menerima perintah yang diteruskan oleh jendela bingkainya. Jika tampilan tidak menangani perintah tertentu, tampilan akan meneruskan perintah ke dokumen terkait. Seperti semua target perintah, tampilan menangani pesan melalui peta pesan.
Tampilan bertanggung jawab untuk menampilkan dan memodifikasi data dokumen tetapi tidak untuk menyimpannya. Dokumen menyediakan tampilan dengan detail yang diperlukan tentang datanya. Anda dapat mengizinkan tampilan mengakses anggota data dokumen secara langsung, atau Anda dapat menyediakan fungsi anggota di kelas dokumen agar kelas tampilan dapat dipanggil.
Saat data dokumen berubah, tampilan yang bertanggung jawab atas perubahan biasanya memanggil CDocument::UpdateAllViews
fungsi untuk dokumen, yang memberi tahu semua tampilan lain dengan memanggil OnUpdate
fungsi anggota untuk masing-masing. Implementasi default membatalkan OnUpdate
seluruh area klien tampilan. Anda dapat mengambil alihnya untuk membatalkan hanya wilayah area klien yang memetakan ke bagian dokumen yang dimodifikasi.
Untuk menggunakan CView
, dapatkan kelas darinya dan terapkan OnDraw
fungsi anggota untuk melakukan tampilan layar. Anda juga dapat menggunakan OnDraw
untuk melakukan pencetakan dan pratinjau cetak. Kerangka kerja menangani perulangan cetak untuk mencetak dan mempratinjau dokumen Anda.
Tampilan menangani pesan bilah gulir dengan CWnd::OnHScroll
fungsi anggota dan CWnd::OnVScroll
. Anda dapat menerapkan penanganan pesan bilah gulir dalam fungsi-fungsi ini, atau Anda dapat menggunakan CView
kelas CScrollView
turunan untuk menangani pengguliran untuk Anda.
CScrollView
Selain itu, Microsoft Foundation Class Library menyediakan sembilan kelas lain yang berasal dari CView
:
CCtrlView
, tampilan yang memungkinkan penggunaan dokumen - melihat arsitektur dengan kontrol edit pohon, daftar, dan kaya.CDaoRecordView
, tampilan yang menampilkan rekaman database dalam kontrol kotak dialog.CEditView
, tampilan yang menyediakan editor teks multibaris sederhana. Anda bisa menggunakanCEditView
objek sebagai kontrol dalam kotak dialog serta tampilan pada dokumen.CFormView
, tampilan yang dapat digulir yang berisi kontrol kotak dialog dan didasarkan pada sumber daya templat dialog.CListView
, tampilan yang memungkinkan penggunaan dokumen - melihat arsitektur dengan kontrol daftar.CRecordView
, tampilan yang menampilkan rekaman database dalam kontrol kotak dialog.CRichEditView
, tampilan yang memungkinkan penggunaan dokumen - melihat arsitektur dengan kontrol edit yang kaya.CScrollView
, tampilan yang secara otomatis menyediakan dukungan gulir.CTreeView
, tampilan yang memungkinkan penggunaan dokumen - melihat arsitektur dengan kontrol pohon.
Kelas ini CView
juga memiliki kelas implementasi turunan bernama CPreviewView
, yang digunakan oleh kerangka kerja untuk melakukan pratinjau cetak. Kelas ini menyediakan dukungan untuk fitur yang unik untuk jendela pratinjau cetak, seperti toolbar, pratinjau halaman tunggal atau ganda, dan perbesar tampilan, yaitu memperbesar gambar yang dipratinjau. Anda tidak perlu memanggil atau menimpa salah satu CPreviewView
fungsi anggota kecuali Anda ingin menerapkan antarmuka Anda sendiri untuk pratinjau cetak (misalnya, jika Anda ingin mendukung pengeditan dalam mode pratinjau cetak). Untuk informasi selengkapnya tentang menggunakan CView
, lihat Arsitektur dan Pencetakan Dokumen/Tampilan. Selain itu, lihat Catatan Teknis 30 untuk detail selengkapnya tentang menyesuaikan pratinjau cetak.
Hierarki Warisan
CView
Persyaratan
Header: afxwin.h
CView::CView
Membuat CView
objek.
CView();
Keterangan
Kerangka kerja memanggil konstruktor saat jendela bingkai baru dibuat atau jendela dipisahkan. Ambil alih OnInitialUpdate
fungsi anggota untuk menginisialisasi tampilan setelah dokumen dilampirkan.
CView::DoPreparePrinting
Panggil fungsi ini dari penimpaan OnPreparePrinting
Anda untuk memanggil kotak dialog Cetak dan membuat konteks perangkat printer.
BOOL DoPreparePrinting(CPrintInfo* pInfo);
Parameter
pInfo
Menunjuk ke CPrintInfo
struktur yang menjelaskan pekerjaan cetak saat ini.
Tampilkan Nilai
Nonzero jika pencetakan atau pratinjau cetak dapat dimulai; 0 jika operasi telah dibatalkan.
Keterangan
Perilaku fungsi ini tergantung pada apakah itu dipanggil untuk mencetak atau mencetak pratinjau (ditentukan oleh m_bPreview
anggota pInfo
parameter). Jika file sedang dicetak, fungsi ini memanggil kotak dialog Cetak, menggunakan nilai dalam CPrintInfo
struktur yang pInfo
menunjuk ke; setelah pengguna menutup kotak dialog, fungsi membuat konteks perangkat printer berdasarkan pengaturan yang ditentukan pengguna dalam kotak dialog dan mengembalikan konteks perangkat ini melalui pInfo
parameter . Konteks perangkat ini digunakan untuk mencetak dokumen.
Jika file sedang dipratinjau, fungsi ini membuat konteks perangkat printer menggunakan pengaturan printer saat ini; konteks perangkat ini digunakan untuk mensimulasikan printer selama pratinjau.
CView::GetDocument
Panggil fungsi ini untuk mendapatkan penunjuk ke dokumen tampilan.
CDocument* GetDocument() const;
Tampilkan Nilai
Penunjuk ke objek yang CDocument
terkait dengan tampilan. NULL
jika tampilan tidak dilampirkan ke dokumen.
Keterangan
Ini memungkinkan Anda untuk memanggil fungsi anggota dokumen.
CView::IsSelected
Dipanggil oleh kerangka kerja untuk memeriksa apakah item dokumen yang ditentukan dipilih.
virtual BOOL IsSelected(const CObject* pDocItem) const;
Parameter
pDocItem
Menunjuk ke item dokumen yang sedang diuji.
Tampilkan Nilai
Bukan nol jika item dokumen yang ditentukan dipilih; jika tidak, 0.
Keterangan
Implementasi default fungsi ini mengembalikan FALSE
. Ambil alih fungsi ini jika Anda menerapkan pilihan menggunakan CDocItem
objek. Anda harus mengambil alih fungsi ini jika tampilan Anda berisi item OLE.
CView::OnActivateFrame
Dipanggil oleh kerangka kerja ketika jendela bingkai yang berisi tampilan diaktifkan atau dinonaktifkan.
virtual void OnActivateFrame(
UINT nState,
CFrameWnd* pFrameWnd);
Parameter
nState
Menentukan apakah jendela bingkai sedang diaktifkan atau dinonaktifkan. Jenis dapat berupa salah satu dari nilai berikut:
WA_INACTIVE
Jendela bingkai sedang dinonaktifkan.WA_ACTIVE
Jendela bingkai sedang diaktifkan melalui beberapa metode selain klik mouse (misalnya, dengan menggunakan antarmuka keyboard untuk memilih jendela).WA_CLICKACTIVE
Jendela bingkai sedang diaktifkan oleh klik mouse
pFrameWnd
Penunjuk ke jendela bingkai yang akan diaktifkan.
Keterangan
Ambil alih fungsi anggota ini jika Anda ingin melakukan pemrosesan khusus saat jendela bingkai yang terkait dengan tampilan diaktifkan atau dinonaktifkan. Misalnya, CFormView
melakukan penimpaan ini saat menyimpan dan memulihkan kontrol yang memiliki fokus.
CView::OnActivateView
Dipanggil oleh kerangka kerja saat tampilan diaktifkan atau dinonaktifkan.
virtual void OnActivateView(
BOOL bActivate,
CView* pActivateView,
CView* pDeactiveView);
Parameter
bActivate
Menunjukkan apakah tampilan sedang diaktifkan atau dinonaktifkan.
pActivateView
Arahkan ke objek tampilan yang sedang diaktifkan.
pDeactiveView
Arahkan ke objek tampilan yang sedang dinonaktifkan.
Keterangan
Implementasi default fungsi ini mengatur fokus ke tampilan yang diaktifkan. Ambil alih fungsi ini jika Anda ingin melakukan pemrosesan khusus saat tampilan diaktifkan atau dinonaktifkan. Misalnya, jika Anda ingin memberikan isyarat visual khusus yang membedakan tampilan aktif dari tampilan yang tidak aktif, Anda akan memeriksa bActivate
parameter dan memperbarui tampilan tampilan yang sesuai.
Parameter pActivateView
dan pDeactiveView
menunjuk ke tampilan yang sama jika jendela bingkai utama aplikasi diaktifkan tanpa perubahan dalam tampilan aktif — misalnya, jika fokus sedang ditransfer dari aplikasi lain ke aplikasi lain, daripada dari satu tampilan ke tampilan lain dalam aplikasi atau saat beralih di antara jendela anak MDI. Ini memungkinkan tampilan untuk mewujudkan kembali paletnya, jika diperlukan.
Parameter ini berbeda ketika CFrameWnd::SetActiveView
dipanggil dengan tampilan yang berbeda dari apa yang CFrameWnd::GetActiveView
akan kembali. Ini paling sering terjadi dengan jendela pemisah.
CView::OnBeginPrinting
Dipanggil oleh kerangka kerja di awal pekerjaan pratinjau cetak atau cetak, setelah OnPreparePrinting
dipanggil.
virtual void OnBeginPrinting(
CDC* pDC,
CPrintInfo* pInfo);
Parameter
pDC
Menunjuk ke konteks perangkat printer.
pInfo
Menunjuk ke CPrintInfo
struktur yang menjelaskan pekerjaan cetak saat ini.
Keterangan
Implementasi default fungsi ini tidak melakukan apa pun. Ambil alih fungsi ini untuk mengalokasikan sumber daya GDI apa pun, seperti pena atau font, yang diperlukan khusus untuk pencetakan. Pilih objek GDI ke dalam konteks perangkat dari dalam OnPrint
fungsi anggota untuk setiap halaman yang menggunakannya. Jika Anda menggunakan objek tampilan yang sama untuk melakukan tampilan layar dan pencetakan, gunakan variabel terpisah untuk sumber daya GDI yang diperlukan untuk setiap tampilan; ini memungkinkan Anda memperbarui layar selama pencetakan.
Anda juga dapat menggunakan fungsi ini untuk melakukan inisialisasi yang bergantung pada properti konteks perangkat printer. Misalnya, jumlah halaman yang diperlukan untuk mencetak dokumen mungkin bergantung pada pengaturan yang ditentukan pengguna dari kotak dialog Cetak (seperti panjang halaman). Dalam situasi seperti itu, Anda tidak dapat menentukan panjang dokumen dalam OnPreparePrinting
fungsi anggota, di mana Anda biasanya akan melakukannya; Anda harus menunggu hingga konteks perangkat printer dibuat berdasarkan pengaturan kotak dialog. OnBeginPrinting
adalah fungsi pertama yang dapat diganti yang memberi Anda akses ke CDC
objek yang mewakili konteks perangkat printer, sehingga Anda dapat mengatur panjang dokumen dari fungsi ini. Perhatikan bahwa jika panjang dokumen tidak ditentukan oleh waktu ini, bilah gulir tidak ditampilkan selama pratinjau cetak.
CView::OnDragEnter
Dipanggil oleh kerangka kerja saat mouse pertama kali memasuki wilayah non-gulir dari jendela target drop.
virtual DROPEFFECT OnDragEnter(
COleDataObject* pDataObject,
DWORD dwKeyState,
CPoint point);
Parameter
pDataObject
Arahkan ke yang COleDataObject
sedang diseret ke area drop tampilan.
dwKeyState
Berisi status kunci pengubah. Ini adalah kombinasi dari sejumlah berikut: MK_CONTROL
, , MK_SHIFT
, MK_ALT
, MK_LBUTTON
MK_MBUTTON
, dan MK_RBUTTON
.
point
Posisi mouse saat ini relatif terhadap area klien tampilan.
Tampilkan Nilai
Nilai dari DROPEFFECT
jenis enumerasi, yang menunjukkan jenis penurunan yang akan terjadi jika pengguna menjatuhkan objek pada posisi ini. Jenis penurunan biasanya tergantung pada status kunci saat ini yang ditunjukkan oleh dwKeyState
. Pemetaan standar keystates ke DROPEFFECT
nilai adalah:
DROPEFFECT_NONE
Objek data tidak dapat dihilangkan di jendela ini.DROPEFFECT_LINK
untukMK_CONTROL|MK_SHIFT
Membuat tautan antara objek dan servernya.DROPEFFECT_COPY
untukMK_CONTROL
Membuat salinan objek yang dihilangkan.DROPEFFECT_MOVE
untukMK_ALT
Membuat salinan objek yang dihilangkan dan menghapus objek asli. Ini biasanya merupakan efek penurunan default, ketika tampilan dapat menerima objek data ini.
Untuk informasi selengkapnya, lihat sampel OCLIENT
Konsep Lanjutan MFC .
Keterangan
Implementasi default adalah tidak melakukan apa pun dan mengembalikan DROPEFFECT_NONE
.
Ambil alih fungsi ini untuk mempersiapkan panggilan di masa mendatang ke OnDragOver
fungsi anggota. Data apa pun yang diperlukan dari objek data harus diambil saat ini untuk digunakan nanti dalam OnDragOver
fungsi anggota. Tampilan juga harus diperbarui saat ini untuk memberikan umpan balik visual pengguna. Untuk informasi selengkapnya, lihat artikel Seret dan letakkan OLE: Menerapkan target penurunan.
CView::OnDragLeave
Dipanggil oleh kerangka kerja selama operasi seret ketika mouse dipindahkan keluar dari area drop yang valid untuk jendela tersebut.
virtual void OnDragLeave();
Keterangan
Ambil alih fungsi ini jika tampilan saat ini perlu membersihkan tindakan apa pun yang diambil selama OnDragEnter
atau OnDragOver
panggilan, seperti menghapus umpan balik pengguna visual saat objek diseret dan dihilangkan.
CView::OnDragOver
Dipanggil oleh kerangka kerja selama operasi seret saat mouse dipindahkan ke jendela target drop.
virtual DROPEFFECT OnDragOver(
COleDataObject* pDataObject,
DWORD dwKeyState,
CPoint point);
Parameter
pDataObject
Menunjuk ke yang COleDataObject
sedang diseret ke atas target penghilangan.
dwKeyState
Berisi status kunci pengubah. Ini adalah kombinasi dari sejumlah berikut: MK_CONTROL
, , MK_SHIFT
, MK_ALT
, MK_LBUTTON
MK_MBUTTON
, dan MK_RBUTTON
.
point
Posisi mouse saat ini relatif terhadap area klien tampilan.
Tampilkan Nilai
Nilai dari DROPEFFECT
jenis enumerasi, yang menunjukkan jenis penurunan yang akan terjadi jika pengguna menjatuhkan objek pada posisi ini. Jenis penurunan sering tergantung pada status kunci saat ini seperti yang ditunjukkan oleh dwKeyState
. Pemetaan standar keystates ke DROPEFFECT
nilai adalah:
DROPEFFECT_NONE
Objek data tidak dapat dihilangkan di jendela ini.DROPEFFECT_LINK
untukMK_CONTROL|MK_SHIFT
Membuat tautan antara objek dan servernya.DROPEFFECT_COPY
untukMK_CONTROL
Membuat salinan objek yang dihilangkan.DROPEFFECT_MOVE
untukMK_ALT
Membuat salinan objek yang dihilangkan dan menghapus objek asli. Ini biasanya merupakan efek penurunan default, ketika tampilan dapat menerima objek data.
Untuk informasi selengkapnya, lihat sampel OCLIENT
Konsep Lanjutan MFC .
Keterangan
Implementasi default adalah tidak melakukan apa pun dan mengembalikan DROPEFFECT_NONE
.
Ambil alih fungsi ini untuk memberikan umpan balik visual pengguna selama operasi seret. Karena fungsi ini dipanggil terus menerus, kode apa pun yang terkandung di dalamnya harus dioptimalkan sebanyak mungkin. Untuk informasi selengkapnya, lihat artikel Seret dan letakkan OLE: Menerapkan target penurunan.
CView::OnDragScroll
Dipanggil oleh kerangka kerja sebelum memanggil OnDragEnter
atau OnDragOver
untuk menentukan apakah titik berada di wilayah pengguliran.
virtual DROPEFFECT OnDragScroll(
DWORD dwKeyState,
CPoint point);
Parameter
dwKeyState
Berisi status kunci pengubah. Ini adalah kombinasi dari sejumlah berikut: MK_CONTROL
, , MK_SHIFT
, MK_ALT
, MK_LBUTTON
MK_MBUTTON
, dan MK_RBUTTON
.
point
Berisi lokasi kursor, dalam piksel, relatif terhadap layar.
Tampilkan Nilai
Nilai dari DROPEFFECT
jenis enumerasi, yang menunjukkan jenis penurunan yang akan terjadi jika pengguna menjatuhkan objek pada posisi ini. Jenis penurunan biasanya tergantung pada status kunci saat ini yang ditunjukkan oleh dwKeyState
. Pemetaan standar keystates ke DROPEFFECT
nilai adalah:
DROPEFFECT_NONE
Objek data tidak dapat dihilangkan di jendela ini.DROPEFFECT_LINK
untukMK_CONTROL|MK_SHIFT
Membuat tautan antara objek dan servernya.DROPEFFECT_COPY
untukMK_CONTROL
Membuat salinan objek yang dihilangkan.DROPEFFECT_MOVE
untukMK_ALT
Membuat salinan objek yang dihilangkan dan menghapus objek asli.DROPEFFECT_SCROLL
Menunjukkan bahwa operasi gulir seret akan terjadi atau terjadi dalam tampilan target.
Untuk informasi selengkapnya, lihat sampel OCLIENT
Konsep Lanjutan MFC .
Keterangan
Ambil alih fungsi ini saat Anda ingin memberikan perilaku khusus untuk peristiwa ini. Implementasi default secara otomatis menggulir jendela saat kursor diseret ke wilayah gulir default di dalam batas setiap jendela. Untuk informasi selengkapnya, lihat artikel Seret dan letakkan OLE: Menerapkan target penurunan.
CView::OnDraw
Dipanggil oleh kerangka kerja untuk merender gambar dokumen.
virtual void OnDraw(CDC* pDC) = 0;
Parameter
pDC
Menunjuk ke konteks perangkat yang akan digunakan untuk merender gambar dokumen.
Keterangan
Kerangka kerja memanggil fungsi ini untuk melakukan tampilan layar, pencetakan, dan pratinjau cetak, dan meneruskan konteks perangkat yang berbeda dalam setiap kasus. Tidak ada implementasi default.
Anda harus mengambil alih fungsi ini untuk menampilkan tampilan dokumen Anda. Anda dapat melakukan panggilan antarmuka perangkat grafis (GDI) menggunakan objek yang CDC
ditujukkan oleh pDC
parameter . Anda dapat memilih sumber daya GDI, seperti pena atau font, ke dalam konteks perangkat sebelum menggambar lalu membatalkan pilihannya setelahnya. Seringkali kode gambar Anda dapat independen perangkat; artinya, tidak memerlukan informasi tentang jenis perangkat apa yang menampilkan gambar.
Untuk mengoptimalkan gambar, panggil RectVisible
fungsi anggota konteks perangkat untuk mengetahui apakah persegi panjang tertentu akan digambar. Jika Anda perlu membedakan antara tampilan layar normal dan pencetakan, panggil IsPrinting
fungsi anggota konteks perangkat.
CView::OnDrop
Dipanggil oleh kerangka kerja saat pengguna merilis objek data melalui target penurunan yang valid.
virtual BOOL OnDrop(
COleDataObject* pDataObject,
DROPEFFECT dropEffect,
CPoint point);
Parameter
pDataObject
Menunjuk ke COleDataObject
yang dijatuhkan ke target penurunan.
dropEffect
Efek drop yang diminta pengguna.
DROPEFFECT_COPY
Membuat salinan objek data yang dihilangkan.DROPEFFECT_MOVE
Memindahkan objek data ke lokasi mouse saat ini.DROPEFFECT_LINK
Membuat tautan antara objek data dan servernya.
point
Posisi mouse saat ini relatif terhadap area klien tampilan.
Tampilkan Nilai
Bukan nol jika penurunan berhasil; jika tidak, 0.
Keterangan
Implementasi default tidak melakukan apa pun dan mengembalikan FALSE
.
Ambil alih fungsi ini untuk mengimplementasikan efek penurunan OLE ke area klien tampilan. Objek data dapat diperiksa melalui pDataObject
untuk format data Clipboard dan data yang dihilangkan pada titik yang ditentukan.
Catatan
Kerangka kerja tidak memanggil fungsi ini jika ada penimpaan ke OnDropEx
di kelas tampilan ini.
CView::OnDropEx
Dipanggil oleh kerangka kerja saat pengguna merilis objek data melalui target penurunan yang valid.
virtual DROPEFFECT OnDropEx(
COleDataObject* pDataObject,
DROPEFFECT dropDefault,
DROPEFFECT dropList,
CPoint point);
Parameter
pDataObject
Menunjuk ke COleDataObject
yang dijatuhkan ke target penurunan.
dropDefault
Efek yang dipilih pengguna untuk operasi penurunan default berdasarkan status kunci saat ini. Mungkin DROPEFFECT_NONE
. Efek jatuh dibahas di bagian Keterangan.
dropList
Daftar efek penurunan yang didukung sumber penghilangan. Nilai efek jatuh dapat digabungkan menggunakan operasi bitwise OR ( |
) . Efek jatuh dibahas di bagian Keterangan.
point
Posisi mouse saat ini relatif terhadap area klien tampilan.
Tampilkan Nilai
Efek penurunan yang dihasilkan dari upaya penghilangan di lokasi yang ditentukan oleh point
. Ini harus menjadi salah satu nilai yang ditunjukkan oleh dropEffectList
. Efek jatuh dibahas di bagian Keterangan.
Keterangan
Implementasi default adalah tidak melakukan apa-apa dan mengembalikan nilai dummy ( -1 ) untuk menunjukkan bahwa kerangka kerja harus memanggil OnDrop
handler.
Ambil alih fungsi ini untuk mengimplementasikan efek seret dan letakkan tombol mouse kanan. Tombol mouse kanan seret dan letakkan biasanya menampilkan menu pilihan saat tombol kanan mouse dilepaskan.
Penimpaan Anda harus mengkueri OnDropEx
tombol kanan mouse. Anda dapat memanggil GetKeyState
atau menyimpan status tombol mouse kanan dari handler Anda OnDragEnter
.
Jika tombol kanan mouse tidak berfungsi, penimpaan Anda akan menampilkan menu popup yang menawarkan dukungan efek drop oleh sumber drop.
Periksa
dropList
untuk menentukan efek drop yang didukung oleh sumber drop. Aktifkan hanya tindakan ini pada menu popup.Gunakan
SetMenuDefaultItem
untuk mengatur tindakan default berdasarkandropDefault
.Terakhir, ambil tindakan yang ditunjukkan oleh pilihan pengguna dari menu popup.
Jika tombol kanan mouse tidak turun, penimpaan Anda harus memproses ini sebagai permintaan drop standar. Gunakan efek drop yang ditentukan dalam
dropDefault
. Secara bergantian, penimpaan Anda dapat mengembalikan nilai dummy (-1) untuk menunjukkan bahwaOnDrop
akan menangani operasi penurunan ini.
Gunakan pDataObject
untuk memeriksa COleDataObject
format data clipboard dan data yang dihilangkan pada titik yang ditentukan.
Jatuhkan efek menjelaskan tindakan yang terkait dengan operasi penghilangan. Lihat daftar efek penurunan berikut:
DROPEFFECT_NONE
Penghilangan tidak akan diizinkan.DROPEFFECT_COPY
Operasi penyalinan akan dilakukan.DROPEFFECT_MOVE
Operasi pemindahan akan dilakukan.DROPEFFECT_LINK
Tautan dari data yang dihilangkan ke data asli akan dibuat.DROPEFFECT_SCROLL
Menunjukkan bahwa operasi gulir seret akan terjadi atau terjadi di target.
Untuk informasi selengkapnya tentang mengatur perintah menu default, lihat SetMenuDefaultItem
di Windows SDK dan CMenu::GetSafeHmenu
dalam volume ini.
CView::OnEndPrinting
Dipanggil oleh kerangka kerja setelah dokumen dicetak atau dipratinjau.
virtual void OnEndPrinting(
CDC* pDC,
CPrintInfo* pInfo);
Parameter
pDC
Menunjuk ke konteks perangkat printer.
pInfo
Menunjuk ke CPrintInfo
struktur yang menjelaskan pekerjaan cetak saat ini.
Keterangan
Implementasi default fungsi ini tidak melakukan apa pun. Ambil alih fungsi ini untuk membebaskan sumber daya GDI apa pun yang OnBeginPrinting
Anda alokasikan dalam fungsi anggota.
CView::OnEndPrintPreview
Dipanggil oleh kerangka kerja saat pengguna keluar dari mode pratinjau cetak.
virtual void OnEndPrintPreview(
CDC* pDC,
CPrintInfo* pInfo,
POINT point,
CPreviewView* pView);
Parameter
pDC
Menunjuk ke konteks perangkat printer.
pInfo
Menunjuk ke CPrintInfo
struktur yang menjelaskan pekerjaan cetak saat ini.
point
Menentukan titik pada halaman yang terakhir ditampilkan dalam mode pratinjau.
pView
Arahkan ke objek tampilan yang digunakan untuk pratinjau.
Keterangan
Implementasi default fungsi ini memanggil OnEndPrinting
fungsi anggota dan memulihkan jendela bingkai utama ke statusnya sebelum pratinjau cetak dimulai. Ambil alih fungsi ini untuk melakukan pemrosesan khusus saat mode pratinjau dihentikan. Misalnya, jika Anda ingin mempertahankan posisi pengguna dalam dokumen saat beralih dari mode pratinjau ke mode tampilan normal, Anda dapat menggulir ke posisi yang dijelaskan oleh point
parameter dan m_nCurPage
anggota CPrintInfo
struktur yang dituju pInfo
parameter.
Selalu panggil versi kelas dasar dari penimpaan OnEndPrintPreview
Anda, biasanya di akhir fungsi.
CView::OnInitialUpdate
Dipanggil oleh kerangka kerja setelah tampilan pertama kali dilampirkan ke dokumen, tetapi sebelum tampilan awalnya ditampilkan.
virtual void OnInitialUpdate();
Keterangan
Implementasi default fungsi ini memanggil OnUpdate
fungsi anggota tanpa informasi petunjuk (yaitu, menggunakan nilai default 0 untuk lHint
parameter dan NULL
untuk pHint
parameter ). Ambil alih fungsi ini untuk melakukan inisialisasi satu kali yang memerlukan informasi tentang dokumen. Misalnya, jika aplikasi Anda memiliki dokumen berukuran tetap, Anda dapat menggunakan fungsi ini untuk menginisialisasi batas gulir tampilan berdasarkan ukuran dokumen. Jika aplikasi Anda mendukung dokumen berukuran variabel, gunakan OnUpdate
untuk memperbarui batas gulir setiap kali dokumen berubah.
CView::OnPrepareDC
Dipanggil oleh kerangka kerja sebelum fungsi anggota dipanggil OnDraw
untuk tampilan layar dan sebelum fungsi anggota dipanggil OnPrint
untuk setiap halaman selama pencetakan atau pratinjau cetak.
virtual void OnPrepareDC(
CDC* pDC,
CPrintInfo* pInfo = NULL);
Parameter
pDC
Menunjuk ke konteks perangkat yang akan digunakan untuk merender gambar dokumen.
pInfo
Menunjuk ke CPrintInfo
struktur yang menjelaskan pekerjaan cetak saat ini jika OnPrepareDC
sedang dipanggil untuk mencetak atau mencetak pratinjau; m_nCurPage
anggota menentukan halaman yang akan dicetak. Parameter ini adalah NULL
jika OnPrepareDC
sedang dipanggil untuk tampilan layar.
Keterangan
Implementasi default fungsi ini tidak melakukan apa pun jika fungsi dipanggil untuk tampilan layar. Namun, fungsi ini ditimpa dalam kelas turunan, seperti CScrollView
, untuk menyesuaikan atribut konteks perangkat; akibatnya, Anda harus selalu memanggil implementasi kelas dasar di awal penimpaan Anda.
Jika fungsi dipanggil untuk pencetakan, implementasi default memeriksa informasi halaman yang disimpan dalam pInfo
parameter . Jika panjang dokumen belum ditentukan, OnPrepareDC
asumsikan dokumen panjangnya satu halaman dan menghentikan perulangan cetak setelah satu halaman dicetak. Fungsi menghentikan perulangan cetak dengan mengatur m_bContinuePrinting
anggota struktur ke FALSE
.
Ambil alih OnPrepareDC
karena salah satu alasan berikut:
Untuk menyesuaikan atribut konteks perangkat sesuai kebutuhan untuk halaman yang ditentukan. Misalnya, jika Anda perlu mengatur mode pemetaan atau karakteristik konteks perangkat lainnya, lakukan dalam fungsi ini.
Untuk melakukan penomoran halaman waktu cetak. Biasanya Anda menentukan panjang dokumen saat pencetakan dimulai, menggunakan
OnPreparePrinting
fungsi anggota. Namun, jika Anda tidak tahu terlebih dahulu berapa lama dokumen (misalnya, saat mencetak jumlah rekaman yang tidak ditentukan dari database), ambil alihOnPrepareDC
untuk menguji akhir dokumen saat sedang dicetak. Ketika tidak ada lagi dokumen yang akan dicetak, aturm_bContinuePrinting
anggotaCPrintInfo
struktur keFALSE
.Untuk mengirim kode escape ke printer berdasarkan halaman demi halaman. Untuk mengirim kode escape dari
OnPrepareDC
, panggilEscape
fungsipDC
anggota parameter.
Panggil versi OnPrepareDC
kelas dasar di awal penimpaan Anda.
Contoh
void CMyView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
CView::OnPrepareDC(pDC, pInfo);
// If we are printing, set the mapmode and the window
// extent properly, then set viewport extent. Use the
// SetViewportOrg member function in the CDC class to
// move the viewport origin to the center of the view.
if (pDC->IsPrinting()) // Is the DC a printer DC.
{
CRect rect;
GetClientRect(&rect);
pDC->SetMapMode(MM_ISOTROPIC);
CSize ptOldWinExt = pDC->SetWindowExt(1000, 1000);
ASSERT(ptOldWinExt.cx != 0 && ptOldWinExt.cy != 0);
CSize ptOldViewportExt = pDC->SetViewportExt(rect.Width(), -rect.Height());
ASSERT(ptOldViewportExt.cx != 0 && ptOldViewportExt.cy != 0);
CPoint ptOldOrigin = pDC->SetViewportOrg(rect.Width() / 2, rect.Height() / 2);
}
}
CView::OnPreparePrinting
Dipanggil oleh kerangka kerja sebelum dokumen dicetak atau dipratinjau.
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
Parameter
pInfo
Menunjuk ke CPrintInfo
struktur yang menjelaskan pekerjaan cetak saat ini.
Tampilkan Nilai
Bukan nol untuk mulai mencetak; 0 jika tugas cetak telah dibatalkan.
Keterangan
Implementasi default tidak melakukan apa pun.
Anda harus mengambil alih fungsi ini untuk mengaktifkan pratinjau pencetakan dan cetak. DoPreparePrinting
Panggil fungsi anggota, berikan pInfo
parameter, lalu kembalikan nilai pengembaliannya; DoPreparePrinting
menampilkan kotak dialog Cetak dan membuat konteks perangkat printer. Jika Anda ingin menginisialisasi kotak dialog Cetak dengan nilai selain default, tetapkan nilai ke anggota pInfo
. Misalnya, jika Anda mengetahui panjang dokumen, teruskan nilai ke fungsi pInfo
anggota SetMaxPage sebelum memanggil DoPreparePrinting
. Nilai ini ditampilkan dalam kotak Kepada: di bagian Rentang dari kotak dialog Cetak.
DoPreparePrinting
tidak menampilkan kotak dialog Cetak untuk pekerjaan pratinjau. Jika Anda ingin melewati kotak dialog Cetak untuk pekerjaan cetak, periksa apakah m_bPreview
anggota pInfo
adalah FALSE
dan kemudian atur ke TRUE
sebelum meneruskannya ke ; atur ulang ke FALSE
DoPreparePrinting
setelahnya.
Jika Anda perlu melakukan inisialisasi yang memerlukan akses ke CDC
objek yang mewakili konteks perangkat printer (misalnya, jika Anda perlu mengetahui ukuran halaman sebelum menentukan panjang dokumen), ambil alih OnBeginPrinting
fungsi anggota.
Jika Anda ingin mengatur nilai m_nNumPreviewPages
atau m_strPageDesc
anggota pInfo
parameter, lakukan setelah memanggil DoPreparePrinting
. Fungsi DoPreparePrinting
anggota diatur m_nNumPreviewPages
ke nilai yang ditemukan di aplikasi . File INI dan diatur m_strPageDesc
ke nilai defaultnya.
Contoh
Ambil alih OnPreparePrinting
dan panggil DoPreparePrinting
dari penimpaan sehingga kerangka kerja akan menampilkan kotak dialog Cetak dan membuat DC printer untuk Anda.
BOOL CMyEditView::OnPreparePrinting(CPrintInfo* pInfo)
{
return CEditView::DoPreparePrinting(pInfo);
}
Jika Anda tahu berapa banyak halaman yang dimuat dokumen, atur halaman maksimum sebelum OnPreparePrinting
memanggil DoPreparePrinting
. Kerangka kerja akan menampilkan nomor halaman maksimum dalam kotak "ke" dari kotak dialog Cetak.
BOOL CExampleView::OnPreparePrinting(CPrintInfo* pInfo)
{
//The document has 2 pages.
pInfo->SetMaxPage(2);
return CView::DoPreparePrinting(pInfo);
}
CView::OnPrint
Dipanggil oleh kerangka kerja untuk mencetak atau mempratinjau halaman dokumen.
virtual void OnPrint(
CDC* pDC,
CPrintInfo* pInfo);
Parameter
pDC
Menunjuk ke konteks perangkat printer.
pInfo
Menunjuk ke CPrintInfo
struktur yang menjelaskan pekerjaan cetak saat ini.
Keterangan
Untuk setiap halaman yang dicetak, kerangka kerja memanggil fungsi ini segera setelah memanggil OnPrepareDC
fungsi anggota. Halaman yang sedang dicetak ditentukan oleh m_nCurPage
anggota CPrintInfo
struktur yang pInfo
menunjuk ke. Implementasi default memanggil OnDraw
fungsi anggota dan meneruskannya konteks perangkat printer.
Ambil alih fungsi ini karena salah satu alasan berikut:
Untuk memperbolehkan pencetakan dokumen perkalian. Render hanya bagian dokumen yang sesuai dengan halaman yang saat ini sedang dicetak. Jika Anda menggunakan
OnDraw
untuk melakukan penyajian, Anda dapat menyesuaikan asal viewport sehingga hanya bagian dokumen yang sesuai yang dicetak.Untuk membuat gambar yang dicetak terlihat berbeda dari gambar layar (yaitu, jika aplikasi Anda bukan WYSIWYG). Alih-alih meneruskan konteks perangkat printer ke
OnDraw
, gunakan konteks perangkat untuk merender gambar menggunakan atribut yang tidak ditampilkan di layar.Jika Anda memerlukan sumber daya GDI untuk mencetak yang tidak Anda gunakan untuk tampilan layar, pilih sumber daya tersebut ke dalam konteks perangkat sebelum menggambar dan membatalkan pilihannya setelahnya. Sumber daya GDI ini harus dialokasikan di dan
OnBeginPrinting
dirilis diOnEndPrinting
.Untuk mengimplementasikan header atau footer. Anda masih dapat menggunakan
OnDraw
untuk melakukan penyajian dengan membatasi area yang dapat dicetaknya.
Perhatikan bahwa m_rectDraw
anggota pInfo
parameter menjelaskan area halaman yang dapat dicetak di unit logis.
Jangan panggil OnPrepareDC
dalam penimpaan OnPrint
Anda ; kerangka kerja memanggil OnPrepareDC
secara otomatis sebelum memanggil OnPrint
.
Contoh
Berikut ini adalah kerangka untuk fungsi yang ditimpa OnPrint
:
void CMyView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
UNREFERENCED_PARAMETER(pInfo);
// Print headers and/or footers, if desired.
// Find portion of document corresponding to pInfo->m_nCurPage.
OnDraw(pDC);
}
Untuk contoh lain, lihat CRichEditView::PrintInsideRect
.
CView::OnScroll
Dipanggil oleh kerangka kerja untuk menentukan apakah pengguliran dimungkinkan.
virtual BOOL OnScroll(
UINT nScrollCode,
UINT nPos,
BOOL bDoScroll = TRUE);
Parameter
nScrollCode
Kode bilah gulir yang menunjukkan permintaan gulir pengguna. Parameter ini terdiri dari dua bagian: byte urutan rendah, yang menentukan jenis pengguliran yang terjadi secara horizontal, dan byte urutan tinggi, yang menentukan jenis pengguliran yang terjadi secara vertikal:
SB_BOTTOM
Gulir ke bawah.SB_LINEDOWN
Menggulir satu baris ke bawah.SB_LINEUP
Menggulir satu baris ke atas.SB_PAGEDOWN
Menggulir satu halaman ke bawah.SB_PAGEUP
Menggulir satu halaman ke atas.SB_THUMBTRACK
Seret kotak gulir ke posisi yang ditentukan. Posisi saat ini ditentukan dalamnPos
.SB_TOP
Gulir ke atas.
nPos
Berisi posisi kotak gulir saat ini jika kode bilah-gulir adalah SB_THUMBTRACK
; jika tidak, itu tidak digunakan. Tergantung pada rentang gulir awal, nPos
mungkin negatif dan harus dilemparkan ke jika int
perlu.
bDoScroll
Menentukan apakah Anda harus benar-benar melakukan tindakan pengguliran yang ditentukan. Jika TRUE
, maka pengguliran harus terjadi; jika FALSE
, maka pengguliran tidak boleh terjadi.
Tampilkan Nilai
Jika bDoScroll
adalah TRUE
dan tampilan benar-benar digulir, maka kembalikan nonzero; jika tidak 0. Jika bDoScroll
adalah FALSE
, maka kembalikan nilai yang akan Anda kembalikan jika bDoScroll
adalah TRUE
, meskipun Anda tidak benar-benar melakukan pengguliran.
Keterangan
Dalam satu kasus, fungsi ini dipanggil oleh kerangka kerja dengan bDoScroll
diatur ke TRUE
saat tampilan menerima pesan bilah gulir. Dalam hal ini, Anda harus benar-benar menggulir tampilan. Dalam kasus lain fungsi ini dipanggil dengan bDoScroll
diatur ke FALSE
ketika item OLE awalnya diseret ke wilayah gulir otomatis target drop sebelum pengguliran benar-benar terjadi. Dalam hal ini, Anda tidak boleh benar-benar menggulir tampilan.
CView::OnScrollBy
Dipanggil oleh kerangka kerja saat pengguna melihat area di luar tampilan dokumen saat ini, baik dengan menyeret item OLE terhadap batas tampilan saat ini atau dengan memanipulasi bilah gulir vertikal atau horizontal.
virtual BOOL OnScrollBy(
CSize sizeScroll,
BOOL bDoScroll = TRUE);
Parameter
sizeScroll
Jumlah piksel yang digulir secara horizontal dan vertikal.
bDoScroll
Menentukan apakah pengguliran tampilan terjadi. Jika TRUE
, maka pengguliran terjadi; jika FALSE
, maka pengguliran tidak terjadi.
Tampilkan Nilai
Bukan nol jika tampilan dapat digulir; jika tidak, 0.
Keterangan
Di kelas turunan, metode ini memeriksa untuk melihat apakah tampilan dapat digulir ke arah yang diminta pengguna dan kemudian memperbarui wilayah baru jika perlu. Fungsi ini secara otomatis dipanggil oleh CWnd::OnHScroll
dan CWnd::OnVScroll
untuk melakukan permintaan pengguliran aktual.
Implementasi default metode ini tidak mengubah tampilan, tetapi jika tidak dipanggil, tampilan tidak akan menggulir di CScrollView
kelas -turunan.
Jika lebar atau tinggi dokumen melebihi 32767 piksel, gulir melewati 32767 akan gagal karena OnScrollBy
dipanggil dengan argumen yang tidak valid sizeScroll
.
CView::OnUpdate
Dipanggil oleh kerangka kerja setelah dokumen tampilan dimodifikasi; fungsi ini dipanggil oleh CDocument::UpdateAllViews
dan memungkinkan tampilan memperbarui tampilannya untuk mencerminkan modifikasi tersebut.
virtual void OnUpdate(
CView* pSender,
LPARAM lHint,
CObject* pHint);
Parameter
pSender
Arahkan ke tampilan yang mengubah dokumen, atau NULL
jika semua tampilan akan diperbarui.
lHint
Berisi informasi tentang modifikasi.
pHint
Menunjuk ke objek yang menyimpan informasi tentang modifikasi.
Keterangan
Ini juga disebut dengan implementasi default .OnInitialUpdate
Implementasi default membatalkan seluruh area klien, menandainya untuk pengecatan saat pesan berikutnya WM_PAINT
diterima. Ambil alih fungsi ini jika Anda hanya ingin memperbarui wilayah yang memetakan ke bagian dokumen yang dimodifikasi. Untuk melakukan ini, Anda harus meneruskan informasi tentang modifikasi menggunakan parameter petunjuk.
Untuk menggunakan lHint
, tentukan nilai petunjuk khusus, biasanya bitmask atau jenis enumerasi, dan minta dokumen meneruskan salah satu nilai ini. Untuk menggunakan pHint
, dapatkan kelas petunjuk dari CObject
dan minta dokumen meneruskan penunjuk ke objek petunjuk; saat menimpa OnUpdate
, gunakan CObject::IsKindOf
fungsi anggota untuk menentukan jenis run-time objek petunjuk.
Biasanya Anda tidak boleh melakukan gambar apa pun langsung dari OnUpdate
. Sebagai gantinya, tentukan persegi panjang yang menjelaskan, dalam koordinat perangkat, area yang memerlukan pembaruan; teruskan persegi panjang ini ke CWnd::InvalidateRect
. Hal ini menyebabkan pengecatan terjadi saat pesan diterima di lain waktu WM_PAINT
.
Jika lHint
adalah 0 dan pHint
adalah NULL
, dokumen telah mengirim pemberitahuan pembaruan generik. Jika tampilan menerima pemberitahuan pembaruan umum, atau jika tidak dapat mendekode petunjuk, tampilan harus membatalkan seluruh area kliennya.
Lihat juga
Sampel MFC MDIDOCVW
CWnd
Kelas
Bagan Hierarki
CWnd
Kelas
CFrameWnd
Kelas
CSplitterWnd
Kelas
CDC
Kelas
CDocTemplate
Kelas
CDocument
Kelas