CSplitterWnd
Kelas
Menyediakan fungsionalitas jendela pemisah, yang merupakan jendela yang berisi beberapa panel.
Sintaks
class CSplitterWnd : public CWnd
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
CSplitterWnd::CSplitterWnd |
Panggil untuk membuat CSplitterWnd objek. |
Metode Publik
Nama | Deskripsi |
---|---|
CSplitterWnd::ActivateNext |
Melakukan perintah Panel Berikutnya atau Panel Sebelumnya. |
CSplitterWnd::CanActivateNext |
Memeriksa untuk melihat apakah perintah Panel Berikutnya atau Panel Sebelumnya saat ini dimungkinkan. |
CSplitterWnd::Create |
Panggil untuk membuat jendela pemisah dinamis dan melampirkannya ke CSplitterWnd objek. |
CSplitterWnd::CreateScrollBarCtrl |
Membuat kontrol bilah gulir bersama. |
CSplitterWnd::CreateStatic |
Panggil untuk membuat jendela pemisah statis dan melampirkannya ke CSplitterWnd objek. |
CSplitterWnd::CreateView |
Panggil untuk membuat panel di jendela pemisah. |
CSplitterWnd::DeleteColumn |
Menghapus kolom dari jendela pemisah. |
CSplitterWnd::DeleteRow |
Menghapus baris dari jendela pemisah. |
CSplitterWnd::DeleteView |
Menghapus tampilan dari jendela pemisah. |
CSplitterWnd::DoKeyboardSplit |
Melakukan perintah pemisahan keyboard, biasanya "Pemisahan Jendela." |
CSplitterWnd::DoScroll |
Melakukan pengguliran jendela terpisah yang disinkronkan. |
CSplitterWnd::DoScrollBy |
Menggulir jendela terpisah menurut sejumlah piksel tertentu. |
CSplitterWnd::GetActivePane |
Menentukan panel aktif dari fokus atau tampilan aktif dalam bingkai. |
CSplitterWnd::GetColumnCount |
Mengembalikan jumlah kolom panel saat ini. |
CSplitterWnd::GetColumnInfo |
Mengembalikan informasi pada kolom yang ditentukan. |
CSplitterWnd::GetPane |
Mengembalikan panel pada baris dan kolom yang ditentukan. |
CSplitterWnd::GetRowCount |
Mengembalikan jumlah baris panel saat ini. |
CSplitterWnd::GetRowInfo |
Mengembalikan informasi pada baris yang ditentukan. |
CSplitterWnd::GetScrollStyle |
Mengembalikan gaya bilah gulir bersama. |
CSplitterWnd::IdFromRowCol |
Mengembalikan ID jendela anak dari panel pada baris dan kolom yang ditentukan. |
CSplitterWnd::IsChildPane |
Panggil untuk menentukan apakah jendela saat ini adalah panel anak dari jendela pemisah ini. |
CSplitterWnd::IsTracking |
Menentukan apakah bilah pemisah saat ini sedang dipindahkan. |
CSplitterWnd::RecalcLayout |
Panggil untuk memutar ulang jendela pemisah setelah menyesuaikan ukuran baris atau kolom. |
CSplitterWnd::SetActivePane |
Mengatur panel menjadi panel aktif dalam bingkai. |
CSplitterWnd::SetColumnInfo |
Panggil untuk mengatur informasi kolom yang ditentukan. |
CSplitterWnd::SetRowInfo |
Panggil untuk mengatur informasi baris yang ditentukan. |
CSplitterWnd::SetScrollStyle |
Menentukan gaya bilah gulir baru untuk dukungan bilah gulir bersama jendela pemisah. |
CSplitterWnd::SplitColumn |
Menunjukkan di mana jendela bingkai dipisahkan secara vertikal. |
CSplitterWnd::SplitRow |
Menunjukkan di mana jendela bingkai dipisahkan secara horizontal. |
Metode yang Dilindungi
Nama | Deskripsi |
---|---|
CSplitterWnd::OnDraw |
Dipanggil oleh kerangka kerja untuk menggambar jendela pemisah. |
CSplitterWnd::OnDrawSplitter |
Merender gambar jendela terpisah. |
CSplitterWnd::OnInvertTracker |
Merender gambar jendela terpisah menjadi ukuran dan bentuk yang sama dengan jendela bingkai. |
Keterangan
Panel biasanya merupakan objek khusus aplikasi yang berasal dari CView
, tetapi dapat berupa objek apa pun CWnd
yang memiliki ID jendela anak yang sesuai.
Objek CSplitterWnd
biasanya disematkan dalam induk CFrameWnd
atau CMDIChildWnd
objek. Buat CSplitterWnd
objek menggunakan langkah-langkah berikut:
Sematkan
CSplitterWnd
variabel anggota dalam bingkai induk.Ambil alih fungsi anggota bingkai
CFrameWnd::OnCreateClient
induk.Dari dalam yang ditimpa
OnCreateClient
, panggilCreate
fungsi atauCreateStatic
anggota dariCSplitterWnd
.
Create
Panggil fungsi anggota untuk membuat jendela pemisah dinamis. Jendela pemisah dinamis biasanya digunakan untuk membuat dan menggulir sejumlah panel individual, atau tampilan, dari dokumen yang sama. Kerangka kerja secara otomatis membuat panel awal untuk pemisah; kemudian kerangka kerja membuat, mengubah ukuran, dan membuang panel tambahan saat pengguna mengoperasikan kontrol jendela pemisah.
Saat Anda memanggil Create
, Anda menentukan tinggi baris minimum dan lebar kolom yang menentukan kapan panel terlalu kecil untuk ditampilkan sepenuhnya. Setelah memanggil Create
, Anda dapat menyesuaikan minimum ini dengan memanggil SetColumnInfo
fungsi anggota dan SetRowInfo
.
SetColumnInfo
Gunakan juga fungsi anggota dan SetRowInfo
untuk mengatur lebar "ideal" untuk kolom dan tinggi "ideal" untuk baris. Saat kerangka kerja menampilkan jendela pemisah, kerangka kerja pertama kali menampilkan bingkai induk, lalu jendela pemisah. Kerangka kerja kemudian menjabarkan panel dalam kolom dan baris sesuai dengan dimensi idealnya, bekerja dari kiri atas ke sudut kanan bawah area klien jendela pemisah.
Semua panel di jendela pemisah dinamis harus dari kelas yang sama. Aplikasi yang familier yang mendukung jendela pemisah dinamis termasuk Microsoft Word dan Microsoft Excel.
CreateStatic
Gunakan fungsi anggota untuk membuat jendela pemisah statis. Pengguna hanya dapat mengubah ukuran panel di jendela pemisah statis, bukan jumlah atau urutannya.
Anda harus secara khusus membuat semua panel pemisah statis saat membuat pemisah statis. Pastikan Anda membuat semua panel sebelum fungsi anggota bingkai OnCreateClient
induk kembali, atau kerangka kerja tidak akan menampilkan jendela dengan benar.
Fungsi CreateStatic
anggota secara otomatis menginisialisasi pemisah statis dengan tinggi baris minimum dan lebar kolom 0. Setelah Anda memanggil Create
, sesuaikan minimum ini dengan memanggil SetColumnInfo
fungsi anggota dan SetRowInfo
. Gunakan SetColumnInfo
juga dan SetRowInfo
setelah Anda memanggil CreateStatic
untuk menunjukkan dimensi panel ideal yang diinginkan.
Panel individual pemisah statis sering kali termasuk dalam kelas yang berbeda. Untuk contoh jendela pemisah statis, lihat editor grafis dan Windows File Manager.
Jendela pemisah mendukung bilah gulir khusus (selain dari bilah gulir yang mungkin dimiliki panel). Bilah gulir ini adalah anak-anak objek CSplitterWnd
dan dibagikan dengan panel.
Anda membuat bilah gulir khusus ini saat membuat jendela pemisah. Misalnya, CSplitterWnd
yang memiliki satu baris, dua kolom, dan WS_VSCROLL
gaya akan menampilkan bilah gulir vertikal yang dibagikan oleh dua panel. Saat pengguna memindahkan bilah gulir, WM_VSCROLL
pesan dikirim ke kedua panel. Saat panel mengatur posisi bilah gulir, bilah gulir bersama diatur.
Untuk informasi lebih lanjut tentang jendela pemisah, lihat Catatan Teknis 29.
Untuk informasi selengkapnya tentang cara membuat jendela pemisah dinamis, lihat:
Sampel
VIEWEX
MFC .
Hierarki Warisan
CSplitterWnd
Persyaratan
Header: afxext.h
CSplitterWnd::ActivateNext
Dipanggil oleh kerangka kerja untuk melakukan perintah Panel Berikutnya atau Panel Sebelumnya.
virtual void ActivateNext(BOOL bPrev = FALSE);
Parameter
bPrev
Menunjukkan jendela mana yang akan diaktifkan. TRUE
untuk sebelumnya; FALSE
untuk berikutnya.
Keterangan
Fungsi anggota ini adalah perintah tingkat tinggi yang digunakan oleh CView
kelas untuk mendelegasikan ke CSplitterWnd
implementasi.
CSplitterWnd::CanActivateNext
Dipanggil oleh kerangka kerja untuk memeriksa apakah perintah Panel Berikutnya atau Panel Sebelumnya saat ini dimungkinkan.
virtual BOOL CanActivateNext(BOOL bPrev = FALSE);
Parameter
bPrev
Menunjukkan jendela mana yang akan diaktifkan. TRUE
untuk sebelumnya; FALSE
untuk berikutnya.
Tampilkan Nilai
Bukan nol jika berhasil; jika tidak, 0.
Keterangan
Fungsi anggota ini adalah perintah tingkat tinggi yang digunakan oleh CView
kelas untuk mendelegasikan ke CSplitterWnd
implementasi.
CSplitterWnd::Create
Untuk membuat jendela pemisah dinamis, panggil Create
fungsi anggota.
virtual BOOL Create(
CWnd* pParentWnd,
int nMaxRows,
int nMaxCols,
SIZE sizeMin,
CCreateContext* pContext,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | SPLS_DYNAMIC_SPLIT,
UINT nID = AFX_IDW_PANE_FIRST);
Parameter
pParentWnd
Jendela bingkai induk jendela pemisah.
nMaxRows
Jumlah maksimum baris di jendela pemisah. Nilai ini tidak boleh melebihi 2.
nMaxCols
Jumlah maksimum kolom di jendela pemisah. Nilai ini tidak boleh melebihi 2.
sizeMin
Menentukan ukuran minimum di mana panel dapat ditampilkan.
pContext
Penunjuk ke CCreateContext
struktur. Dalam kebanyakan kasus, ini dapat diteruskan pContext
ke jendela bingkai induk.
dwStyle
Menentukan gaya jendela.
nID
ID jendela anak dari jendela. ID dapat kecuali AFX_IDW_PANE_FIRST
jendela pemisah disarangkan di dalam jendela pemisah lain.
Tampilkan Nilai
Bukan nol jika berhasil; jika tidak, 0.
Keterangan
Anda bisa menyematkan CSplitterWnd
di induk CFrameWnd
atau CMDIChildWnd
objek dengan mengambil langkah-langkah berikut:
Sematkan
CSplitterWnd
variabel anggota dalam bingkai induk.Ambil alih fungsi anggota bingkai
CFrameWnd::OnCreateClient
induk.Create
Panggil fungsi anggota dari dalam penimpaanOnCreateClient
.
Saat Anda membuat jendela pemisah dari dalam bingkai induk, teruskan parameter bingkai pContext
induk ke jendela pemisah. Jika tidak, parameter ini bisa berupa NULL
.
Tinggi baris minimum awal dan lebar kolom jendela pemisah dinamis diatur oleh sizeMin
parameter . Minimum ini, yang menentukan apakah panel terlalu kecil untuk ditampilkan secara keseluruhan, dapat diubah dengan SetRowInfo
fungsi anggota dan SetColumnInfo
.
Untuk informasi selengkapnya tentang jendela pemisah dinamis, lihat "Windows Pemisah" dalam artikel Beberapa Jenis Dokumen, Tampilan, dan Jendela Bingkai, Catatan Teknis 29, dan CSplitterWnd
gambaran umum kelas.
Contoh
// the following function is created by the MFC Application Wizard
// when you select Split window from the User Interface Features tab:
BOOL CMyChildFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext *pContext)
{
return m_wndSplitter.Create(this,
2, 2, // TODO: adjust the number of rows, columns
CSize(10, 10), // TODO: adjust the minimum pane size
pContext);
}
CSplitterWnd::CreateScrollBarCtrl
Dipanggil oleh kerangka kerja untuk membuat kontrol bilah gulir bersama.
virtual BOOL CreateScrollBarCtrl(
DWORD dwStyle,
UINT nID);
Parameter
dwStyle
Menentukan gaya jendela.
nID
ID jendela anak dari jendela. ID dapat kecuali AFX_IDW_PANE_FIRST
jendela pemisah disarangkan di dalam jendela pemisah lain.
Tampilkan Nilai
Bukan nol jika berhasil; jika tidak, 0.
Keterangan
Ambil alih CreateScrollBarCtrl
untuk menyertakan kontrol tambahan di samping bilah gulir. Perilaku defaultnya adalah membuat kontrol bilah gulir Windows normal.
CSplitterWnd::CreateStatic
Untuk membuat jendela pemisah statis, panggil CreateStatic
fungsi anggota.
virtual BOOL CreateStatic(
CWnd* pParentWnd,
int nRows,
int nCols,
DWORD dwStyle = WS_CHILD | WS_VISIBLE,
UINT nID = AFX_IDW_PANE_FIRST);
Parameter
pParentWnd
Jendela bingkai induk jendela pemisah.
nRows
Jumlah baris. Nilai ini tidak boleh melebihi 16.
nCols
Jumlah kolom. Nilai ini tidak boleh melebihi 16.
dwStyle
Menentukan gaya jendela.
nID
ID jendela anak dari jendela. ID dapat kecuali AFX_IDW_PANE_FIRST
jendela pemisah disarangkan di dalam jendela pemisah lain.
Tampilkan Nilai
Bukan nol jika berhasil; jika tidak, 0.
Keterangan
CSplitterWnd
biasanya disematkan dalam induk CFrameWnd
atau CMDIChildWnd
objek dengan mengambil langkah-langkah berikut:
Sematkan
CSplitterWnd
variabel anggota dalam bingkai induk.Ambil alih fungsi anggota bingkai
OnCreateClient
induk.CreateStatic
Panggil fungsi anggota dari dalam penimpaanCFrameWnd::OnCreateClient
.
Jendela pemisah statis berisi sejumlah panel tetap, sering kali dari kelas yang berbeda.
Saat Anda membuat jendela pemisah statis, Anda harus pada saat yang sama membuat semua panelnya. Fungsi CreateView
anggota biasanya digunakan untuk tujuan ini, tetapi Anda juga dapat membuat kelas nonview lainnya.
Tinggi baris minimum awal dan lebar kolom untuk jendela pemisah statis adalah 0. Minimum ini, yang menentukan kapan panel terlalu kecil untuk ditampilkan secara keseluruhan, dapat diubah dengan SetRowInfo
fungsi anggota dan SetColumnInfo
.
Untuk menambahkan bilah gulir ke jendela pemisah statis, tambahkan WS_HSCROLL
gaya dan WS_VSCROLL
ke dwStyle
.
Lihat "Windows Pemisah" dalam artikel Beberapa Jenis Dokumen, Tampilan, dan Jendela Bingkai, Catatan Teknis 29, dan CSplitterWnd
gambaran umum kelas untuk informasi selengkapnya tentang jendela pemisah statis.
CSplitterWnd::CreateView
Membuat panel untuk jendela pemisah statis.
virtual BOOL CreateView(
int row,
int col,
CRuntimeClass* pViewClass,
SIZE sizeInit,
CCreateContext* pContext);
Parameter
row
Menentukan baris jendela pemisah untuk menempatkan tampilan baru.
col
Menentukan kolom jendela pemisah untuk menempatkan tampilan baru.
pViewClass
CRuntimeClass
Menentukan tampilan baru.
sizeInit
Menentukan ukuran awal tampilan baru.
pContext
Penunjuk ke konteks pembuatan yang digunakan untuk membuat tampilan (biasanya pContext
yang diteruskan ke fungsi anggota yang ditimpa CFrameWnd::OnCreateClient
bingkai induk tempat jendela pemisah sedang dibuat).
Tampilkan Nilai
Bukan nol jika berhasil; jika tidak, 0.
Keterangan
Semua panel jendela pemisah statis harus dibuat sebelum kerangka kerja menampilkan pemisah.
Kerangka kerja juga memanggil fungsi anggota ini untuk membuat panel baru saat pengguna jendela pemisah dinamis memisahkan panel, baris, atau kolom.
Contoh
// this function creates the panes for a static splitter window
BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext *pContext)
{
m_bSplitterCreated = m_wndSplitter.CreateStatic(this, 1, 2);
// CMyView and CMyOtherView are user-defined views derived from CView
m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CMyView), CSize(0, 0),
pContext);
m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CMyOtherView), CSize(0, 0),
pContext);
return (m_bSplitterCreated);
}
CSplitterWnd::CSplitterWnd
Panggil untuk membuat CSplitterWnd
objek.
CSplitterWnd();
Keterangan
Buat CSplitterWnd
objek dalam dua langkah. Pertama, panggil konstruktor, yang membuat CSplitterWnd
objek, lalu panggil Create
fungsi anggota, yang membuat jendela pemisah dan melampirkannya ke CSplitterWnd
objek.
CSplitterWnd::DeleteColumn
Menghapus kolom dari jendela pemisah.
virtual void DeleteColumn(int colDelete);
Parameter
colDelete
Menentukan kolom yang akan dihapus.
Keterangan
Fungsi anggota ini dipanggil oleh kerangka kerja untuk mengimplementasikan logika jendela pemisah dinamis (yaitu, jika jendela pemisah memiliki SPLS_DYNAMIC_SPLIT
gaya). Ini dapat disesuaikan, bersama dengan fungsi CreateView
virtual , untuk mengimplementasikan pemisah dinamis yang lebih canggih.
CSplitterWnd::DeleteRow
Menghapus baris dari jendela pemisah.
virtual void DeleteRow(int rowDelete);
Parameter
rowDelete
Menentukan baris yang akan dihapus.
Keterangan
Fungsi anggota ini dipanggil oleh kerangka kerja untuk mengimplementasikan logika jendela pemisah dinamis (yaitu, jika jendela pemisah memiliki SPLS_DYNAMIC_SPLIT
gaya). Ini dapat disesuaikan, bersama dengan fungsi CreateView
virtual , untuk mengimplementasikan pemisah dinamis yang lebih canggih.
CSplitterWnd::DeleteView
Menghapus tampilan dari jendela pemisah.
virtual void DeleteView(
int row,
int col);
Parameter
row
Menentukan baris jendela pemisah untuk menghapus tampilan.
col
Menentukan kolom jendela pemisah untuk menghapus tampilan.
Keterangan
Jika tampilan aktif sedang dihapus, tampilan berikutnya akan menjadi aktif. Implementasi default mengasumsikan tampilan akan dihapus secara otomatis di PostNcDestroy
.
Fungsi anggota ini dipanggil oleh kerangka kerja untuk mengimplementasikan logika jendela pemisah dinamis (yaitu, jika jendela pemisah memiliki SPLS_DYNAMIC_SPLIT
gaya). Ini dapat disesuaikan, bersama dengan fungsi CreateView
virtual , untuk mengimplementasikan pemisah dinamis yang lebih canggih.
CSplitterWnd::DoKeyboardSplit
Melakukan perintah pemisahan keyboard, biasanya "Pemisahan Jendela."
virtual BOOL DoKeyboardSplit();
Tampilkan Nilai
Bukan nol jika berhasil; jika tidak, 0.
Keterangan
Fungsi anggota ini adalah perintah tingkat tinggi yang digunakan oleh CView
kelas untuk mendelegasikan ke CSplitterWnd
implementasi.
CSplitterWnd::DoScroll
Melakukan pengguliran jendela terpisah yang disinkronkan.
virtual BOOL DoScroll(
CView* pViewFrom,
UINT nScrollCode,
BOOL bDoScroll = TRUE);
Parameter
pViewFrom
Penunjuk ke tampilan asal pesan gulir.
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_TOP
Gulir ke atas.
bDoScroll
Menentukan apakah tindakan pengguliran yang ditentukan terjadi. Jika bDoScroll
adalah TRUE
(yaitu, jika jendela anak ada, dan jika jendela terpisah memiliki rentang gulir), maka tindakan pengguliran yang ditentukan dapat terjadi; jika bDoScroll
adalah FALSE
(yaitu, jika tidak ada jendela anak, atau tampilan terpisah tidak memiliki rentang gulir), maka pengguliran tidak terjadi.
Tampilkan Nilai
Nonzero jika pengguliran yang disinkronkan terjadi; jika tidak, 0.
Keterangan
Fungsi anggota ini dipanggil oleh kerangka kerja untuk melakukan pengguliran jendela terpisah yang disinkronkan saat tampilan menerima pesan gulir. Ambil alih untuk memerlukan tindakan oleh pengguna sebelum pengguliran yang disinkronkan diizinkan.
CSplitterWnd::DoScrollBy
Menggulir jendela terpisah menurut sejumlah piksel tertentu.
virtual BOOL DoScrollBy(
CView* pViewFrom,
CSize sizeScroll,
BOOL bDoScroll = TRUE);
Parameter
pViewFrom
Penunjuk ke tampilan asal pesan gulir.
sizeScroll
Jumlah piksel yang akan digulir secara horizontal dan vertikal.
bDoScroll
Menentukan apakah tindakan pengguliran yang ditentukan terjadi. Jika bDoScroll
adalah TRUE
(yaitu, jika jendela anak ada, dan jika jendela terpisah memiliki rentang gulir), maka tindakan pengguliran yang ditentukan dapat terjadi; jika bDoScroll
adalah FALSE
(yaitu, jika tidak ada jendela anak, atau tampilan terpisah tidak memiliki rentang gulir), maka pengguliran tidak terjadi.
Tampilkan Nilai
Nonzero jika pengguliran yang disinkronkan terjadi; jika tidak, 0.
Keterangan
Fungsi anggota ini dipanggil oleh kerangka kerja sebagai respons terhadap pesan gulir, untuk melakukan pengguliran yang disinkronkan dari jendela terpisah berdasarkan jumlah, dalam piksel, yang ditunjukkan oleh sizeScroll
. Nilai positif menunjukkan pengguliran ke bawah dan ke kanan; nilai negatif menunjukkan pengguliran ke atas dan ke kiri.
Ambil alih untuk memerlukan tindakan oleh pengguna sebelum mengizinkan gulir.
CSplitterWnd::GetActivePane
Menentukan panel aktif dari fokus atau tampilan aktif dalam bingkai.
virtual CWnd* GetActivePane(
int* pRow = NULL,
int* pCol = NULL);
Parameter
pRow
Penunjuk ke int
untuk mengambil nomor baris panel aktif.
pCol
Penunjuk ke int
untuk mengambil nomor kolom panel aktif.
Tampilkan Nilai
Penunjuk ke panel aktif. NULL
jika tidak ada panel aktif.
Keterangan
Fungsi anggota ini dipanggil oleh kerangka kerja untuk menentukan panel aktif di jendela pemisah. Ambil alih untuk memerlukan tindakan oleh pengguna sebelum mendapatkan panel aktif.
CSplitterWnd::GetColumnCount
Mengembalikan jumlah kolom panel saat ini.
int GetColumnCount() const;
Tampilkan Nilai
Mengembalikan jumlah kolom saat ini dalam pemisah. Untuk pemisah statis, ini juga akan menjadi jumlah kolom maksimum.
CSplitterWnd::GetColumnInfo
Mengembalikan informasi pada kolom yang ditentukan.
void GetColumnInfo(
int col,
int& cxCur,
int& cxMin) const;
Parameter
col
Menentukan kolom.
cxCur
Referensi ke yang int
akan diatur ke lebar kolom saat ini.
cxMin
Referensi ke yang int
akan diatur ke lebar minimum kolom saat ini.
CSplitterWnd::GetPane
Mengembalikan panel pada baris dan kolom yang ditentukan.
CWnd* GetPane(
int row,
int col) const;
Parameter
row
Menentukan baris.
col
Menentukan kolom.
Tampilkan Nilai
Mengembalikan panel pada baris dan kolom yang ditentukan. Panel yang dikembalikan biasanya merupakan CView
kelas -turunan.
CSplitterWnd::GetRowCount
Mengembalikan jumlah baris panel saat ini.
int GetRowCount() const;
Tampilkan Nilai
Mengembalikan jumlah baris saat ini di jendela pemisah. Untuk jendela pemisah statis, ini juga akan menjadi jumlah baris maksimum.
CSplitterWnd::GetRowInfo
Mengembalikan informasi pada baris yang ditentukan.
void GetRowInfo(
int row,
int& cyCur,
int& cyMin) const;
Parameter
row
Menentukan baris.
cyCur
Referensi untuk int
diatur ke tinggi baris saat ini dalam piksel.
cyMin
Referensi untuk int
diatur ke tinggi minimum baris saat ini dalam piksel.
Keterangan
Panggil fungsi anggota ini untuk mendapatkan informasi tentang baris yang ditentukan. Parameter cyCur
diisi dengan tinggi baris yang ditentukan saat ini, dan cyMin
diisi dengan tinggi minimum baris.
CSplitterWnd::GetScrollStyle
Mengembalikan gaya bilah gulir bersama untuk jendela pemisah.
DWORD GetScrollStyle() const;
Tampilkan Nilai
Satu atau beberapa bendera gaya windows berikut ini, jika berhasil:
WS_HSCROLL
Jika pemisah saat ini mengelola bilah gulir horizontal bersama.WS_VSCROLL
Jika pemisah saat ini mengelola bilah gulir vertikal bersama.
Jika nol, jendela pemisah saat ini tidak mengelola bilah gulir bersama.
CSplitterWnd::IdFromRowCol
Mendapatkan ID jendela anak untuk panel pada baris dan kolom yang ditentukan.
int IdFromRowCol(
int row,
int col) const;
Parameter
row
Menentukan baris jendela pemisah.
col
Menentukan kolom jendela pemisah.
Tampilkan Nilai
ID jendela anak untuk panel.
Keterangan
Fungsi anggota ini digunakan untuk membuat nonview sebagai panel dan dapat dipanggil sebelum panel ada.
Contoh
HBRUSH CMySplitterWnd::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
{
HBRUSH hbr = CSplitterWnd::OnCtlColor(pDC, pWnd, nCtlColor);
if (nCtlColor == CTLCOLOR_LISTBOX &&
pWnd->GetDlgCtrlID() == IdFromRowCol(1, 0))
{
// Pane 1,0 is a list box. Set the color of the text to be blue.
pDC->SetBkColor(m_BkColor);
pDC->SetTextColor(RGB(0, 0, 255));
return (HBRUSH)m_hbrListBoxBkgnd.GetSafeHandle();
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
CSplitterWnd::IsChildPane
Menentukan apakah pWnd
saat ini adalah panel anak dari jendela pemisah ini.
BOOL IsChildPane(
CWnd* pWnd,
int* pRow,
int* pCol);
Parameter
pWnd
Penunjuk ke objek yang CWnd
akan diuji.
pRow
Penunjuk ke int
tempat menyimpan nomor baris.
pCol
Penunjuk ke int
tempat menyimpan nomor kolom.
Tampilkan Nilai
Jika bukan nol, pWnd
saat ini adalah panel anak dari jendela pemisah ini, dan pRow
diisi pCol
dengan posisi panel di jendela pemisah. Jika pWnd
bukan panel anak dari jendela pemisah ini, 0 dikembalikan.
Keterangan
Dalam versi Visual C++ sebelum 6.0, fungsi ini didefinisikan sebagai
BOOL IsChildPane(CWnd* pWnd, int& row, int& col);
Versi ini sekarang usang dan tidak boleh digunakan.
CSplitterWnd::IsTracking
Panggil fungsi anggota ini untuk menentukan apakah bilah pemisah di jendela saat ini sedang dipindahkan.
BOOL IsTracking();
Tampilkan Nilai
Bukan nol jika operasi pemisah sedang berlangsung; jika tidak, 0.
CSplitterWnd::OnDrawSplitter
Merender gambar jendela terpisah.
virtual void OnDrawSplitter(
CDC* pDC,
ESplitType nType,
const CRect& rect);
Parameter
pDC
Penunjuk ke konteks perangkat untuk menggambar. Jika pDC
adalah NULL
, maka CWnd::RedrawWindow
dipanggil oleh kerangka kerja dan tidak ada jendela terpisah yang digambar.
nType
Nilai enum ESplitType
, yang bisa menjadi salah satu dari yang berikut ini:
splitBox
Kotak seret pemisah.splitBar
Bilah yang muncul di antara dua jendela terpisah.splitIntersection
Persimpangan jendela terpisah. Elemen ini tidak akan dipanggil saat berjalan pada Windows 95/98.splitBorder
Batas jendela terpisah.
rect
Referensi ke objek yang CRect
menentukan ukuran dan bentuk jendela terpisah.
Keterangan
Fungsi anggota ini dipanggil oleh kerangka kerja untuk menggambar dan menentukan karakteristik yang tepat dari jendela pemisah. Ambil alih OnDrawSplitter
untuk penyesuaian citra tingkat lanjut untuk berbagai komponen grafis jendela pemisah. Citra default mirip dengan pemisah di Microsoft Works untuk Windows atau Microsoft Windows 95/98, di mana persimpangan bilah pemisah dipadukan.
Untuk informasi selengkapnya tentang jendela pemisah dinamis, lihat "Windows Pemisah" dalam artikel Beberapa Jenis Dokumen, Tampilan, dan Jendela Bingkai, Catatan Teknis 29, dan CSplitterWnd
gambaran umum kelas.
CSplitterWnd::OnInvertTracker
Merender gambar jendela terpisah menjadi ukuran dan bentuk yang sama dengan jendela bingkai.
virtual void OnInvertTracker(const CRect& rect);
Parameter
rect
Referensi ke objek yang CRect
menentukan persegi panjang pelacakan.
Keterangan
Fungsi anggota ini dipanggil oleh kerangka kerja selama mengubah ukuran pemisah. Ambil alih OnInvertTracker
untuk kustomisasi lanjutan citra jendela pemisah. Citra default mirip dengan pemisah di Microsoft Works untuk Windows atau Microsoft Windows 95/98, di mana persimpangan bilah pemisah dipadukan.
Untuk informasi selengkapnya tentang jendela pemisah dinamis, lihat "Windows Pemisah" dalam artikel Beberapa Jenis Dokumen, Tampilan, dan Jendela Bingkai, Catatan Teknis 29, dan CSplitterWnd
gambaran umum kelas.
CSplitterWnd::RecalcLayout
Panggil untuk memutar ulang jendela pemisah setelah menyesuaikan ukuran baris atau kolom.
virtual void RecalcLayout();
Keterangan
Panggil fungsi anggota ini untuk memutar ulang jendela pemisah dengan benar setelah Anda menyesuaikan ukuran baris dan kolom dengan SetRowInfo
fungsi anggota dan SetColumnInfo
. Jika Anda mengubah ukuran baris dan kolom sebagai bagian dari proses pembuatan sebelum jendela pemisah terlihat, tidak perlu memanggil fungsi anggota ini.
Kerangka kerja memanggil fungsi anggota ini setiap kali pengguna mengubah ukuran jendela pemisah atau memindahkan pemisahan.
Contoh
Lihat contoh untuk CSplitterWnd::SetColumnInfo
.
CSplitterWnd::SetActivePane
Mengatur panel menjadi panel aktif dalam bingkai.
virtual void SetActivePane(
int row,
int col,
CWnd* pWnd = NULL);
Parameter
row
Jika pWnd
adalah NULL
, menentukan baris di panel yang akan aktif.
col
Jika pWnd
adalah NULL
, menentukan kolom di panel yang akan aktif.
pWnd
Penunjuk ke CWnd
objek. Jika NULL
, panel yang ditentukan oleh row
dan col
diatur aktif. Jika tidak NULL
, menentukan panel yang diatur aktif.
Keterangan
Fungsi anggota ini dipanggil oleh kerangka kerja untuk mengatur panel sebagai aktif saat pengguna mengubah fokus ke panel dalam jendela bingkai. Anda dapat secara eksplisit memanggil SetActivePane
untuk mengubah fokus ke tampilan yang ditentukan.
Tentukan panel dengan menyediakan baris dan kolom, atau dengan menyediakan pWnd
.
CSplitterWnd::SetColumnInfo
Panggil untuk mengatur informasi kolom yang ditentukan.
void SetColumnInfo(
int col,
int cxIdeal,
int cxMin);
Parameter
col
Menentukan kolom jendela pemisah.
cxIdeal
Menentukan lebar ideal untuk kolom jendela pemisah dalam piksel.
cxMin
Menentukan lebar minimum untuk kolom jendela pemisah dalam piksel.
Keterangan
Panggil fungsi anggota ini untuk mengatur lebar minimum baru dan lebar ideal untuk kolom. Nilai minimum kolom menentukan kapan kolom akan terlalu kecil untuk ditampilkan sepenuhnya.
Saat kerangka kerja menampilkan jendela pemisah, kerangka kerja menjabarkan panel dalam kolom dan baris sesuai dengan dimensi idealnya, bekerja dari kiri atas ke sudut kanan bawah area klien jendela pemisah.
Contoh
void CChildFrame::OnSize(UINT nType, int cx, int cy)
{
CMDIChildWnd::OnSize(nType, cx, cy);
CRect rect;
GetWindowRect(&rect);
if (m_bSplitterCreated) // m_bSplitterCreated set in OnCreateClient
{
m_wndSplitter.SetColumnInfo(0, rect.Width() / 2, 10);
m_wndSplitter.SetColumnInfo(1, rect.Width() / 2, 10);
m_wndSplitter.RecalcLayout();
}
}
CSplitterWnd::SetRowInfo
Panggil untuk mengatur informasi baris yang ditentukan.
void SetRowInfo(
int row,
int cyIdeal,
int cyMin);
Parameter
row
Menentukan baris jendela pemisah.
cyIdeal
Menentukan tinggi ideal untuk baris jendela pemisah dalam piksel.
cyMin
Menentukan tinggi minimum untuk baris jendela pemisah dalam piksel.
Keterangan
Panggil fungsi anggota ini untuk mengatur tinggi minimum baru dan tinggi ideal untuk baris. Nilai minimum baris menentukan kapan baris akan terlalu kecil untuk ditampilkan sepenuhnya.
Saat kerangka kerja menampilkan jendela pemisah, kerangka kerja menjabarkan panel dalam kolom dan baris sesuai dengan dimensi idealnya, bekerja dari kiri atas ke sudut kanan bawah area klien jendela pemisah.
CSplitterWnd::SetScrollStyle
Menentukan gaya gulir baru untuk dukungan bilah gulir bersama jendela pemisah.
void SetScrollStyle(DWORD dwStyle);
Parameter
dwStyle
Gaya gulir baru untuk dukungan bilah gulir bersama jendela pemisah, yang bisa menjadi salah satu nilai berikut:
WS_HSCROLL
Membuat/memperlihatkan bilah gulir bersama horizontal.WS_VSCROLL
Membuat/menampilkan bilah gulir bersama vertikal.
Keterangan
Setelah bilah gulir dibuat, bilah gulir tidak akan dihancurkan bahkan jika SetScrollStyle
dipanggil tanpa gaya tersebut; sebaliknya bilah gulir tersebut disembunyikan. Ini memungkinkan bilah gulir untuk mempertahankan statusnya meskipun disembunyikan. Setelah memanggil SetScrollStyle
, perlu untuk memanggil RecalcLayout
semua perubahan agar diterapkan.
CSplitterWnd::SplitColumn
Menunjukkan di mana jendela bingkai dipisahkan secara vertikal.
virtual BOOL SplitColumn(int cxBefore);
Parameter
cxBefore
Posisi, dalam piksel, sebelum pemisahan terjadi.
Tampilkan Nilai
Bukan nol jika berhasil; jika tidak, 0.
Keterangan
Fungsi anggota ini dipanggil ketika jendela pemisah vertikal dibuat. SplitColumn
menunjukkan lokasi default tempat pemisahan terjadi.
SplitColumn
dipanggil oleh kerangka kerja untuk mengimplementasikan logika jendela pemisah dinamis (yaitu, jika jendela pemisah memiliki SPLS_DYNAMIC_SPLIT
gaya). Ini dapat disesuaikan, bersama dengan fungsi CreateView
virtual , untuk mengimplementasikan pemisah dinamis yang lebih canggih.
CSplitterWnd::SplitRow
Menunjukkan di mana jendela bingkai dipisahkan secara horizontal.
virtual BOOL SplitRow(int cyBefore);
Parameter
cyBefore
Posisi, dalam piksel, sebelum pemisahan terjadi.
Tampilkan Nilai
Bukan nol jika berhasil; jika tidak, 0.
Keterangan
Fungsi anggota ini dipanggil ketika jendela pemisah horizontal dibuat. SplitRow
menunjukkan lokasi default tempat pemisahan terjadi.
SplitRow
dipanggil oleh kerangka kerja untuk mengimplementasikan logika jendela pemisah dinamis (yaitu, jika jendela pemisah memiliki SPLS_DYNAMIC_SPLIT
gaya). Ini dapat disesuaikan, bersama dengan fungsi CreateView
virtual , untuk mengimplementasikan pemisah dinamis yang lebih canggih.
CSplitterWnd::OnDraw
Dipanggil oleh kerangka kerja untuk menggambar jendela pemisah.
virtual void OnDraw(CDC* pDC);
Parameter
pDC
Penunjuk ke konteks perangkat.