Bagikan melalui


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.

CScrollViewSelain 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 menggunakan CEditView 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 CPreviewViewfungsi 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

CObject

CCmdTarget

CWnd

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_LBUTTONMK_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 untuk MK_CONTROL|MK_SHIFT Membuat tautan antara objek dan servernya.

  • DROPEFFECT_COPY untuk MK_CONTROL Membuat salinan objek yang dihilangkan.

  • DROPEFFECT_MOVE untuk MK_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 OCLIENTKonsep 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_LBUTTONMK_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 untuk MK_CONTROL|MK_SHIFT Membuat tautan antara objek dan servernya.

  • DROPEFFECT_COPY untuk MK_CONTROL Membuat salinan objek yang dihilangkan.

  • DROPEFFECT_MOVE untuk MK_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 OCLIENTKonsep 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_LBUTTONMK_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 untuk MK_CONTROL|MK_SHIFT Membuat tautan antara objek dan servernya.

  • DROPEFFECT_COPY untuk MK_CONTROL Membuat salinan objek yang dihilangkan.

  • DROPEFFECT_MOVE untuk MK_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 OCLIENTKonsep 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 berdasarkan dropDefault.

    • 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 bahwa OnDrop 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 alih OnPrepareDC untuk menguji akhir dokumen saat sedang dicetak. Ketika tidak ada lagi dokumen yang akan dicetak, atur m_bContinuePrinting anggota CPrintInfo struktur ke FALSE.

  • Untuk mengirim kode escape ke printer berdasarkan halaman demi halaman. Untuk mengirim kode escape dari OnPrepareDC, panggil Escape fungsi pDC 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 DoPreparePrintingsetelahnya.

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 di OnEndPrinting.

  • 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 OnPrintAnda ; 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 dalam nPos.

  • 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 CScrollViewkelas -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