Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
CSplitterWndvariabel anggota dalam bingkai induk.Ambil alih fungsi anggota bingkai
CFrameWnd::OnCreateClientinduk.Dari dalam yang ditimpa
OnCreateClient, panggilCreatefungsi atauCreateStaticanggota 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
VIEWEXMFC .
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
CSplitterWndvariabel anggota dalam bingkai induk.Ambil alih fungsi anggota bingkai
CFrameWnd::OnCreateClientinduk.CreatePanggil 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
CSplitterWndvariabel anggota dalam bingkai induk.Ambil alih fungsi anggota bingkai
OnCreateClientinduk.CreateStaticPanggil 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 CreateViewvirtual , 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 CreateViewvirtual , 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 CreateViewvirtual , 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_BOTTOMGulir ke bawah.SB_LINEDOWNMenggulir satu baris ke bawah.SB_LINEUPMenggulir satu baris ke atas.SB_PAGEDOWNMenggulir satu halaman ke bawah.SB_PAGEUPMenggulir satu halaman ke atas.SB_TOPGulir 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 CViewkelas -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_HSCROLLJika pemisah saat ini mengelola bilah gulir horizontal bersama.WS_VSCROLLJika 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:
splitBoxKotak seret pemisah.splitBarBilah yang muncul di antara dua jendela terpisah.splitIntersectionPersimpangan jendela terpisah. Elemen ini tidak akan dipanggil saat berjalan pada Windows 95/98.splitBorderBatas 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_HSCROLLMembuat/memperlihatkan bilah gulir bersama horizontal.WS_VSCROLLMembuat/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 CreateViewvirtual , 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 CreateViewvirtual , 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.