Come fare una finestra personalizzata Splitter in MFC

October 4

Una finestra splitter è un interfaccia di Windows Explorer-like. Il pannello di sinistra (master) mostra tipicamente una struttura di directory. Il pannello di destra (slave) visualizza i dettagli della cartella che è stato selezionato sulla sinistra. La classe CSplitterWnd della Microsoft Foundation Class (MFC) Libreria incapsula la funzionalità per la gestione di una finestra splitter. Qui ci sono le linee guida generali per l'inizializzazione di una classe CSplitterWnd.

istruzione

1 Creare un nuovo progetto Applicazione Win32. Assicurarsi che ha un singolo file sorgente con il supporto del documento / vista. Includere il "afxwin.h" file di libreria. Dichiarare una variabile CSplitterWnd.

2 Comprendere la differenza tra le finestre splitter statici e dinamici. Una finestra splitter statica ha un certo numero statica delle lastre, determinato all'interno funzione "OnCreateClient" del frame genitore durante l'inizializzazione. Un utente può modificare solo la dimensione dei pannelli. Una finestra splitter dinamica fornisce i controlli che consentono a un utente di creare, cancellare e ridimensionare riquadri aggiuntivi, come richiesto. Durante l'inizializzazione, il quadro crea un unico riquadro per impostazione predefinita.

3 Posizionare la variabile CSplitterWnd su una finestra genitore o cornice. Questo esempio utilizza un oggetto CFrameWnd come il frame principale. Dall'interno della funzione membro "OnCreateClient" di "CFrameWnd," richiamare la funzione "Crea" di "CSplitterWnd", "CreateStatic" o seconda se si desidera creare una finestra splitter dinamica statica o, rispettivamente.

4 Regolare l'altezza e la larghezza delle singole lastre attraverso il "SetRowInfo" e funzioni membro "SetColumnInfo". Tu li chiami dentro "CreateStatic" o "Crea" per inizializzare l'altezza e la larghezza a zero. Chiamata di nuovo dopo "CreateStatic" e "Crea" per specificare le dimensioni del riquadro desiderati.

5 Creare barre di scorrimento tra i vetri. Una finestra splitter che ha una riga e due colonne mostrerà una barra di scorrimento in stile WS_VSCROLL. Uno che ha due righe e una colonna viene visualizzata una barra di scorrimento in stile WS_HSCROLL. Le barre di scorrimento di default sono figli della classe CSplitterWnd. Un oggetto CSplitterWnd statica in grado di supportare le barre di scorrimento delle classi dei suoi vetri.

Consigli e avvertenze

  • Una scelta comune di riquadro per un oggetto CSplitterWnd statica è la classe CView.
  • Per utilizzare la classe CView, è necessario utilizzare il CHolderView che contiene i controlli di CView.
  • Incorporare una finestra splitter in un oggetto CFrameWnd sarà affondata. E 'meglio derivare una classe da CFrameWnd in modo da rimuovere il suo stile WS_EX_CLIENTEDGE prima della creazione.