Bagikan melalui


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:

  1. Sematkan CSplitterWnd variabel anggota dalam bingkai induk.

  2. Ambil alih fungsi anggota bingkai CFrameWnd::OnCreateClient induk.

  3. Dari dalam yang ditimpa OnCreateClient, panggil Create fungsi atau CreateStatic anggota dari CSplitterWnd.

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:

  • Contoh Scribble MFC

  • Sampel VIEWEXMFC .

Hierarki Warisan

CObject

CCmdTarget

CWnd

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:

  1. Sematkan CSplitterWnd variabel anggota dalam bingkai induk.

  2. Ambil alih fungsi anggota bingkai CFrameWnd::OnCreateClient induk.

  3. Create Panggil fungsi anggota dari dalam penimpaan OnCreateClient.

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:

  1. Sematkan CSplitterWnd variabel anggota dalam bingkai induk.

  2. Ambil alih fungsi anggota bingkai OnCreateClient induk.

  3. CreateStatic Panggil fungsi anggota dari dalam penimpaan CFrameWnd::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_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 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_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 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.

Keterangan

Baca juga

Sampel MFC VIEWEX
CWnd Kelas
Bagan Hierarki
CView Kelas