Condividi tramite


Classe CFrameWnd

Fornisce la funzionalità di un'interfaccia a documento singolo (SDI) di Windows sovrapposta o di una finestra cornice popup, insieme ai membri per gestire la finestra.

Sintassi

class CFrameWnd : public CWnd

Membri

Costruttori pubblici

Nome Descrizione
CFrameWnd::CFrameWnd Costruisce un oggetto CFrameWnd.

Metodi pubblici

Nome Descrizione
CFrameWnd::ActivateFrame Rende il frame visibile e disponibile per l'utente.
CFrameWnd::BeginModalState Imposta la finestra cornice su modale.
CFrameWnd::Create Chiamare per creare e inizializzare la finestra cornice di Windows associata all'oggetto CFrameWnd .
CFrameWnd::CreateView Crea una vista all'interno di un frame non derivato da CView.
CFrameWnd::DockControlBar Ancora una barra di controllo.
CFrameWnd::EnableDocking Consente di ancorare una barra di controllo.
CFrameWnd::EndModalState Termina lo stato modale della finestra cornice. Abilita tutte le finestre disabilitate da BeginModalState.
CFrameWnd::FloatControlBar Galleggiante una barra di controllo.
CFrameWnd::GetActiveDocument Restituisce l'oggetto attivo CDocument .
CFrameWnd::GetActiveFrame Restituisce l'oggetto attivo CFrameWnd .
CFrameWnd::GetActiveView Restituisce l'oggetto attivo CView .
CFrameWnd::GetControlBar Recupera la barra di controllo.
CFrameWnd::GetDockState Recupera lo stato di ancoraggio di una finestra cornice.
CFrameWnd::GetMenuBarState Recupera lo stato di visualizzazione del menu nell'applicazione MFC corrente.
CFrameWnd::GetMenuBarVisibility Indica se il comportamento predefinito del menu nell'applicazione MFC corrente è nascosto o visibile.
CFrameWnd::GetMessageBar Restituisce un puntatore alla barra di stato appartenente alla finestra cornice.
CFrameWnd::GetMessageString Recupera il messaggio corrispondente a un ID comando.
CFrameWnd::GetTitle Recupera il titolo della barra di controllo correlata.
CFrameWnd::InitialUpdateFrame Fa in modo che venga chiamata la OnInitialUpdate funzione membro appartenente a tutte le visualizzazioni nella finestra cornice.
CFrameWnd::InModalState Restituisce un valore che indica se una finestra cornice è in uno stato modale.
CFrameWnd::IsTracking Determina se la barra di divisione è in corso di spostamento.
CFrameWnd::LoadAccelTable Chiamare per caricare una tabella di tasti di scelta rapida.
CFrameWnd::LoadBarState Chiamata per ripristinare le impostazioni della barra di controllo.
CFrameWnd::LoadFrame Chiamare per creare dinamicamente una finestra cornice dalle informazioni sulle risorse.
CFrameWnd::NegotiateBorderSpace Negozia lo spazio del bordo nella finestra cornice.
CFrameWnd::OnBarCheck Chiamato ogni volta che viene eseguita un'azione sulla barra di controllo specificata.
CFrameWnd::OnContextHelp Gestisce la Guida MAIUSC+F1 per gli elementi sul posto.
CFrameWnd::OnSetPreviewMode Imposta la finestra cornice principale dell'applicazione in modalità anteprima di stampa e fuori.
CFrameWnd::OnUpdateControlBarMenu Chiamato dal framework quando viene aggiornato il menu associato.
CFrameWnd::RecalcLayout Riposiziona le barre di controllo dell'oggetto CFrameWnd .
CFrameWnd::SaveBarState Chiamare per salvare le impostazioni della barra di controllo.
CFrameWnd::SetActivePreviewView Definisce la visualizzazione specificata come visualizzazione attiva per l'anteprima avanzata.
CFrameWnd::SetActiveView Imposta l'oggetto attivo CView .
CFrameWnd::SetDockState Chiamare per ancorare la finestra cornice nella finestra principale.
CFrameWnd::SetMenuBarState Imposta lo stato di visualizzazione del menu nell'applicazione MFC corrente su nascosto o visualizzato.
CFrameWnd::SetMenuBarVisibility Imposta il comportamento predefinito del menu nell'applicazione MFC corrente in modo che sia nascosto o visibile.
CFrameWnd::SetMessageText Imposta il testo di una barra di stato standard.
CFrameWnd::SetProgressBarPosition Imposta la posizione corrente per la barra di stato di Windows 7 visualizzata sulla barra delle applicazioni.
CFrameWnd::SetProgressBarRange Imposta l'intervallo per la barra di stato di Windows 7 visualizzata sulla barra delle applicazioni.
CFrameWnd::SetProgressBarState Imposta il tipo e lo stato dell'indicatore di stato visualizzato su un pulsante della barra delle applicazioni.
CFrameWnd::SetTaskbarOverlayIcon Con overload. Applica una sovrimpressione a un pulsante della barra delle applicazioni per indicare lo stato dell'applicazione o una notifica all'utente.
CFrameWnd::SetTitle Imposta il titolo della barra di controllo correlata.
CFrameWnd::ShowControlBar Chiamare per visualizzare la barra di controllo.
CFrameWnd::ShowOwnedWindows Mostra tutte le finestre discendenti dell'oggetto CFrameWnd .

Metodi protetti

Nome Descrizione
CFrameWnd::OnCreateClient Crea una finestra client per il frame.
CFrameWnd::OnHideMenuBar Chiamato prima del menu nell'applicazione MFC corrente è nascosto.
CFrameWnd::OnShowMenuBar Chiamato prima che venga visualizzato il menu nell'applicazione MFC corrente.

Membri dati pubblici

Nome Descrizione
CFrameWnd::m_bAutoMenuEnable Controlla la funzionalità di abilitazione e disabilitazione automatica per le voci di menu.
CFrameWnd::rectDefault Passare questo oggetto statico CRect come parametro durante la creazione di un CFrameWnd oggetto per consentire a Windows di scegliere la dimensione iniziale e la posizione della finestra.

Osservazioni:

Per creare una finestra cornice utile per l'applicazione, derivare una classe da CFrameWnd. Aggiungere variabili membro alla classe derivata per archiviare i dati specifici dell'applicazione. Implementare funzioni membro di gestione dei messaggi e una mappa messaggi nella classe derivata per specificare cosa succede quando i messaggi vengono indirizzati alla finestra.

Esistono tre modi per costruire una finestra cornice:

  • Costruisci direttamente il file usando Create.

  • Costruisci direttamente il file usando LoadFrame.

  • Crearlo indirettamente usando un modello di documento.

Prima di chiamare Create o LoadFrame, è necessario costruire l'oggetto finestra cornice nell'heap usando l'operatore C++ new . Prima di chiamare Create, è anche possibile registrare una classe window con la AfxRegisterWndClass funzione globale per impostare l'icona e gli stili di classe per la cornice.

Usare la Create funzione membro per passare i parametri di creazione del frame come argomenti immediati.

LoadFrame richiede meno argomenti di Createe recupera invece la maggior parte dei valori predefiniti dalle risorse, tra cui la didascalia, l'icona, la tabella dell'acceleratore e il menu. Per essere accessibili da LoadFrame, tutte queste risorse devono avere lo stesso ID risorsa , ad esempio IDR_MAINFRAME.

Quando un CFrameWnd oggetto contiene visualizzazioni e documenti, vengono creati indirettamente dal framework anziché direttamente dal programmatore. L'oggetto CDocTemplate orchestra la creazione del frame, la creazione delle visualizzazioni contenenti e la connessione delle visualizzazioni al documento appropriato. I parametri del CDocTemplate costruttore specificano le CRuntimeClass tre classi coinvolte (documento, cornice e visualizzazione). Un CRuntimeClass oggetto viene usato dal framework per creare dinamicamente nuovi fotogrammi quando viene specificato dall'utente ,ad esempio usando il comando File Nuovo o il comando MDI (Multiple Document Interface) Window New.

Per il corretto funzionamento del meccanismo precedenteRUNTIME_CLASS, è necessario dichiarare una classe della finestra cornice derivata da CFrameWnd .DECLARE_DYNCREATE

Contiene CFrameWnd implementazioni predefinite per eseguire le funzioni seguenti di una finestra principale in un'applicazione tipica per Windows:

  • Una CFrameWnd finestra cornice tiene traccia di una visualizzazione attualmente attiva indipendente dalla finestra attiva di Windows o dallo stato attivo dell'input corrente. Quando il frame viene riattivato, la visualizzazione attiva riceve una notifica chiamando CView::OnActivateView.

  • I messaggi di comando e molti messaggi comuni di notifica dei frame, inclusi quelli gestiti dalle OnSetFocusfunzioni , OnHScrolle OnVScroll di CWnd, vengono delegati da una CFrameWnd finestra cornice alla visualizzazione attualmente attiva.

  • La visualizzazione attualmente attiva (o la finestra cornice figlio MDI attiva nel caso di un frame MDI) può determinare la didascalia della finestra cornice. Questa funzionalità può essere disabilitata disattivando il FWS_ADDTOTITLE bit di stile della finestra cornice.

  • Una CFrameWnd finestra cornice gestisce il posizionamento delle barre di controllo, delle visualizzazioni e di altre finestre figlio all'interno dell'area client della finestra cornice. Una finestra cornice esegue anche l'aggiornamento inattiva della barra degli strumenti e di altri pulsanti della barra di controllo. Una CFrameWnd finestra cornice include anche implementazioni predefinite di comandi per attivare e disattivare la barra degli strumenti e la barra di stato.

  • Una CFrameWnd finestra cornice gestisce la barra dei menu principale. Quando viene visualizzato un menu a comparsa, la finestra cornice usa il UPDATE_COMMAND_UI meccanismo per determinare quali voci di menu devono essere abilitate, disabilitate o controllate. Quando l'utente seleziona una voce di menu, la finestra cornice aggiorna la barra di stato con la stringa di messaggio per tale comando.

  • Una CFrameWnd finestra cornice ha una tabella di tasti di scelta rapida facoltativa che converte automaticamente i tasti di scelta rapida.

  • Una CFrameWnd finestra cornice include un ID guida facoltativo impostato con LoadFrame che viene usato per la Guida sensibile al contesto. Una finestra cornice è l'agente di orchestrazione principale di stati semimodali, ad esempio la Guida sensibile al contesto (MAIUSC+F1) e le modalità anteprima di stampa.

  • Una CFrameWnd finestra cornice aprirà un file trascinato da Gestione file ed eliminato nella finestra cornice. Se un'estensione di file è registrata e associata all'applicazione, la finestra cornice risponde alla richiesta aperta DDE (Dynamic Data Exchange) che si verifica quando l'utente apre un file di dati in Gestione file o quando viene chiamata la ShellExecute funzione Windows.

  • Se la finestra cornice è la finestra principale dell'applicazione , CWinThread::m_pMainWndovvero , quando l'utente chiude l'applicazione, la finestra cornice chiede all'utente di salvare i documenti modificati (per OnClose e OnQueryEndSession).

  • Se la finestra cornice è la finestra principale dell'applicazione, la finestra cornice è il contesto per l'esecuzione di WinHelp. La chiusura della finestra cornice verrà arrestata WINHELP.EXE se è stata avviata per assistenza per questa applicazione.

Non usare l'operatore C++ delete per eliminare definitivamente una finestra cornice. Utilizzare invece CWnd::DestroyWindow. L'implementazione CFrameWnd di PostNcDestroy eliminerà l'oggetto C++ quando la finestra viene eliminata definitivamente. Quando l'utente chiude la finestra cornice, il gestore predefinito OnClose chiamerà DestroyWindow.

Per altre informazioni su CFrameWnd, vedere Finestre cornice.

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CFrameWnd

Requisiti

Intestazione: afxwin.h

CFrameWnd::ActivateFrame

Chiamare questa funzione membro per attivare e ripristinare la finestra cornice in modo che sia visibile e disponibile per l'utente.

virtual void ActivateFrame(int nCmdShow = -1);

Parametri

nCmdShow
Specifica il parametro da passare a CWnd::ShowWindow. Per impostazione predefinita, il frame viene visualizzato e ripristinato correttamente.

Osservazioni:

Questa funzione membro viene in genere chiamata dopo un evento dell'interfaccia non utente, ad esempio DDE, OLE o un altro evento che può visualizzare la finestra cornice o il relativo contenuto all'utente.

L'implementazione predefinita attiva il frame e la porta all'inizio dell'ordine Z e, se necessario, esegue gli stessi passaggi per la finestra cornice principale dell'applicazione.

Eseguire l'override di questa funzione membro per modificare la modalità di attivazione di un frame. Ad esempio, è possibile forzare l'ingrandimento delle finestre figlio MDI. Aggiungere la funzionalità appropriata, quindi chiamare la versione della classe base con un oggetto esplicito nCmdShow.

Esempio

void CChildFrame::ActivateFrame(int nCmdShow)
{
   // Create the child frame window maximized
   nCmdShow = SW_MAXIMIZE;

   CMDIChildWnd::ActivateFrame(nCmdShow);
}

CFrameWnd::BeginModalState

Chiamare questa funzione membro per impostare lo stato modale per una finestra cornice.

virtual void BeginModalState();

CFrameWnd::CFrameWnd

Costruisce un CFrameWnd oggetto , ma non crea la finestra cornice visibile.

CFrameWnd();

Osservazioni:

Chiamare Create per creare la finestra visibile.

CFrameWnd::Create

Chiamare per creare e inizializzare la finestra cornice di Windows associata all'oggetto CFrameWnd .

virtual BOOL Create(
    LPCTSTR lpszClassName,
    LPCTSTR lpszWindowName,
    DWORD dwStyle = WS_OVERLAPPEDWINDOW,
    const RECT& rect = rectDefault,
    CWnd* pParentWnd = NULL,
    LPCTSTR lpszMenuName = NULL,
    DWORD dwExStyle = 0,
    CCreateContext* pContext = NULL);

Parametri

lpszClassName
Punta a una stringa di caratteri con terminazione Null che denomina la classe Windows. Il nome della classe può essere qualsiasi nome registrato con la AfxRegisterWndClass funzione globale o la RegisterClass funzione Windows. Se NULL, usa gli attributi predefiniti CFrameWnd .

lpszWindowName
Punta a una stringa di caratteri con terminazione Null che rappresenta il nome della finestra. Usato come testo per la barra del titolo.

dwStyle
Specifica gli attributi dello stile della finestra. Includi lo FWS_ADDTOTITLE stile se vuoi che la barra del titolo visualizzi automaticamente il nome del documento rappresentato nella finestra.

rect
Specifica le dimensioni e la posizione della finestra. Il rectDefault valore consente a Windows di specificare le dimensioni e la posizione della nuova finestra.

pParentWnd
Specifica la finestra padre di questa finestra cornice. Questo parametro deve essere NULL per le finestre cornice di primo livello.

lpszMenuName
Identifica il nome della risorsa di menu da usare con la finestra. Utilizzare MAKEINTRESOURCE se il menu ha un ID intero anziché una stringa. Questo parametro può essere NULL.

dwExStyle
Specifica gli attributi dello stile esteso della finestra.

pContext
Specifica un puntatore a una CCreateContext struttura. Questo parametro può essere NULL.

Valore restituito

Diverso da zero se l'inizializzazione ha esito positivo; in caso contrario, 0.

Osservazioni:

Costruire un CFrameWnd oggetto in due passaggi. Richiamare innanzitutto il costruttore , che costruisce l'oggetto CFrameWnd e quindi chiamare Create, che crea la finestra cornice di Windows e la collega all'oggetto CFrameWnd . Create inizializza il nome della classe e il nome della finestra della finestra e registra i valori predefiniti per lo stile, l'elemento padre e il menu associato.

Usare LoadFrame anziché Create caricare la finestra cornice da una risorsa anziché specificarne gli argomenti.

CFrameWnd::CreateView

Chiamare CreateView per creare una visualizzazione all'interno di un frame.

CWnd* CreateView(
    CCreateContext* pContext,
    UINT nID = AFX_IDW_PANE_FIRST);

Parametri

pContext
Specifica il tipo di visualizzazione e documento.

nID
Numero ID di una visualizzazione.

Valore restituito

Puntatore a un CWnd oggetto se ha esito positivo; in caso contrario NULL, .

Osservazioni:

Usare questa funzione membro per creare "views" che non CViewsono derivate all'interno di un frame. Dopo aver chiamato CreateView, è necessario impostare manualmente la visualizzazione su attiva e impostarla su visibile. Queste attività non vengono eseguite automaticamente da CreateView.

CFrameWnd::DockControlBar

Fa sì che una barra di controllo sia ancorata alla finestra cornice.

void DockControlBar(
    CControlBar* pBar,
    UINT nDockBarID = 0,
    LPCRECT lpRect = NULL);

Parametri

pBar
Punta alla barra di controllo da ancorare.

nDockBarID
Determina quali lati della finestra cornice considerare per l'ancoraggio. Può essere 0 o uno o più degli elementi seguenti:

  • AFX_IDW_DOCKBAR_TOP Ancorare sul lato superiore della finestra cornice.

  • AFX_IDW_DOCKBAR_BOTTOM Ancorare sul lato inferiore della finestra cornice.

  • AFX_IDW_DOCKBAR_LEFT Ancorare sul lato sinistro della finestra cornice.

  • AFX_IDW_DOCKBAR_RIGHT Ancorare sul lato destro della finestra cornice.

Se 0, la barra di controllo può essere ancorata a qualsiasi lato abilitata per l'ancoraggio nella finestra cornice di destinazione.

lpRect
Determina, nelle coordinate dello schermo, in cui la barra di controllo verrà ancorata nell'area non client della finestra cornice di destinazione.

Osservazioni:

La barra di controllo verrà ancorata a uno dei lati della finestra cornice specificata nelle chiamate a e CFrameWnd::EnableDocking.CControlBar::EnableDocking Il lato scelto è determinato da nDockBarID.

CFrameWnd::EnableDocking

Chiamare questa funzione per abilitare le barre di controllo ancorabili in una finestra cornice.

void EnableDocking(DWORD dwDockStyle);

Parametri

dwDockStyle
Specifica quali lati della finestra cornice possono fungere da siti di ancoraggio per le barre di controllo. Può trattarsi di uno o più dei seguenti elementi:

  • CBRS_ALIGN_TOP Consente l'ancoraggio nella parte superiore dell'area client.

  • CBRS_ALIGN_BOTTOM Consente l'ancoraggio nella parte inferiore dell'area client.

  • CBRS_ALIGN_LEFT Consente l'ancoraggio sul lato sinistro dell'area client.

  • CBRS_ALIGN_RIGHT Consente l'ancoraggio sul lato destro dell'area client.

  • CBRS_ALIGN_ANY Consente l'ancoraggio su qualsiasi lato dell'area client.

Osservazioni:

Per impostazione predefinita, le barre di controllo verranno ancorate a un lato della finestra cornice nell'ordine seguente: superiore, inferiore, sinistro, destro.

Esempio

Vedere l'esempio per CToolBar::Create.

CFrameWnd::EndModalState

Chiamare questa funzione membro per cambiare lo stato di una finestra cornice da modale a non modale.

virtual void EndModalState();

Osservazioni:

EndModalState abilita tutte le finestre disabilitate da BeginModalState.

CFrameWnd::FloatControlBar

Chiamare questa funzione per fare in modo che una barra di controllo non sia ancorata alla finestra cornice.

void FloatControlBar(
    CControlBar* pBar,
    CPoint point,
    DWORD dwStyle = CBRS_ALIGN_TOP);

Parametri

pBar
Punta alla barra di controllo da spostare.

point
Posizione, nelle coordinate dello schermo, in cui verrà posizionato l'angolo superiore sinistro della barra di controllo.

dwStyle
Specifica se allineare la barra di controllo orizzontalmente o verticalmente all'interno della nuova finestra cornice. Può trattarsi di uno dei seguenti elementi:

  • CBRS_ALIGN_TOP Orienta verticalmente la barra di controllo.

  • CBRS_ALIGN_BOTTOM Orienta verticalmente la barra di controllo.

  • CBRS_ALIGN_LEFT Orienta orizzontalmente la barra di controllo.

  • CBRS_ALIGN_RIGHT Orienta orizzontalmente la barra di controllo.

Se gli stili vengono passati specificando l'orientamento orizzontale e verticale, la barra degli strumenti verrà orientata orizzontalmente.

Osservazioni:

In genere, questa operazione viene eseguita all'avvio dell'applicazione quando il programma ripristina le impostazioni dall'esecuzione precedente.

Questa funzione viene chiamata dal framework quando l'utente causa un'operazione di rilascio rilasciando il pulsante sinistro del mouse durante il trascinamento della barra di controllo su una posizione non disponibile per l'ancoraggio.

CFrameWnd::GetActiveDocument

Chiamare questa funzione membro per ottenere un puntatore all'oggetto corrente CDocument associato alla visualizzazione attiva corrente.

virtual CDocument* GetActiveDocument();

Valore restituito

Puntatore all'oggetto corrente CDocument. Se non è presente alcun documento corrente, restituisce NULL.

CFrameWnd::GetActiveFrame

Chiamare questa funzione membro per ottenere un puntatore alla finestra figlio MDI (Multiple Document Interface) attiva di una finestra cornice MDI.

virtual CFrameWnd* GetActiveFrame();

Valore restituito

Puntatore alla finestra figlio MDI attiva. Se l'applicazione è un'applicazione SDI o la finestra cornice MDI non dispone di un documento attivo, verrà restituito il puntatore implicito this .

Osservazioni:

Se non è presente alcun figlio MDI attivo o l'applicazione è una singola interfaccia del documento (SDI), viene restituito il puntatore implicito this .

CFrameWnd::GetActiveView

Chiamare questa funzione membro per ottenere un puntatore alla visualizzazione attiva (se presente) collegata a una finestra cornice ( CFrameWnd).

CView* GetActiveView() const;

Valore restituito

Puntatore all'oggetto corrente CView. Se non è presente alcuna visualizzazione corrente, restituisce NULL.

Osservazioni:

Questa funzione restituisce NULL quando viene chiamato per una finestra cornice principale MDI ( CMDIFrameWnd). In un'applicazione MDI la finestra cornice principale MDI non dispone di una visualizzazione associata. Ogni singola finestra figlio ( CMDIChildWnd) ha invece una o più visualizzazioni associate. La visualizzazione attiva in un'applicazione MDI può essere ottenuta individuando prima la finestra figlio MDI attiva e quindi trovando la visualizzazione attiva per tale finestra figlio. La finestra figlio MDI attiva è reperibile chiamando la funzione MDIGetActive o GetActiveFrame come illustrato di seguito:

CMDIFrameWnd *pFrame = (CMDIFrameWnd*)AfxGetApp()->GetMainWnd();

// Get the active MDI child window.
CMDIChildWnd *pChild = (CMDIChildWnd*)pFrame->GetActiveFrame();

// or CMDIChildWnd *pChild = pFrame->MDIGetActive();

// Get the active view attached to the active MDI child window.
CMyView *pView = (CMyView*)pChild->GetActiveView();

CFrameWnd::GetControlBar

Chiamata GetControlBar per ottenere l'accesso alla barra di controllo associata all'ID.

CControlBar* GetControlBar(UINT nID);

Parametri

nID
Numero ID di una barra di controllo.

Valore restituito

Puntatore alla barra di controllo associata all'ID.

Osservazioni:

Il nID parametro fa riferimento all'identificatore univoco passato al Create metodo della barra di controllo. Per altre informazioni sulle barre di controllo, vedere l'argomento barre di controllo intitolato Barre di controllo.

GetControlBar restituirà la barra di controllo anche se è mobile e pertanto non è attualmente una finestra figlio del frame.

CFrameWnd::GetDockState

Chiamare questa funzione membro per archiviare le informazioni sullo stato relative alle barre di controllo della finestra cornice in un CDockState oggetto .

void GetDockState(CDockState& state) const;

Parametri

state
Contiene lo stato corrente delle barre di controllo della finestra cornice al momento della restituzione.

Osservazioni:

È quindi possibile scrivere il contenuto di CDockState nell'archiviazione usando CDockState::SaveState o Serialize. Se in un secondo momento si desidera ripristinare le barre di controllo a uno stato precedente, caricare lo stato con CDockState::LoadState o Serialize, quindi chiamare SetDockState per applicare lo stato precedente alle barre di controllo della finestra cornice.

CFrameWnd::GetMenuBarState

Recupera lo stato di visualizzazione del menu nell'applicazione MFC corrente.

virtual DWORD GetMenuBarState();

Valore restituito

Il valore restituito può avere i valori seguenti:

  • AFX_MBS_VISIBLE (0x01): il menu è visibile.

  • AFX_MBS_HIDDEN (0x02): il menu è nascosto.

Osservazioni:

Se si verifica un errore di runtime, questo metodo asserisce in modalità Debug e genera un'eccezione derivata dalla CException classe .

CFrameWnd::GetMenuBarVisibility

Indica se lo stato predefinito del menu nell'applicazione MFC corrente è nascosto o visibile.

virtual DWORD CFrameWnd::GetMenuBarVisibility();

Valore restituito

Questo metodo restituisce uno dei valori seguenti:

  • AFX_MBV_KEEPVISIBLE (0x01): il menu viene visualizzato sempre e per impostazione predefinita non ha lo stato attivo.

  • AFX_MBV_DISPLAYONFOCUS (0x02): il menu è nascosto per impostazione predefinita. Se il menu è nascosto, premere ALT per visualizzare il menu e assegnare lo stato attivo. Se viene visualizzato il menu, premere ALT o ESC per nasconderlo.

  • AFX_MBV_ DISPLAYONFOCUS | AFX_MBV_DISPLAYONF10 (0x06): il menu è nascosto per impostazione predefinita. Se il menu è nascosto, premere F10 per visualizzare il menu e assegnare lo stato attivo. Se viene visualizzato il menu, premere F10 per attivare o disattivare lo stato attivo. Il menu viene visualizzato fino a quando non si preme ALT o ESC per nasconderlo.

Osservazioni:

Se si verifica un errore di runtime, questo metodo asserisce in modalità Debug e genera un'eccezione derivata dalla CException classe .

CFrameWnd::GetMessageBar

Chiamare questa funzione membro per ottenere un puntatore alla barra di stato.

virtual CWnd* GetMessageBar();

Valore restituito

Puntatore alla finestra della barra di stato.

CFrameWnd::GetMessageString

Eseguire l'override di questa funzione per fornire stringhe personalizzate per gli ID comando.

virtual void GetMessageString(
    UINT nID,
    CString& rMessage) const;

Parametri

nID
ID risorsa del messaggio desiderato.

rMessage
CString oggetto in cui inserire il messaggio.

Osservazioni:

L'implementazione predefinita carica semplicemente la stringa specificata dal nID file di risorse. Questa funzione viene chiamata dal framework quando la stringa del messaggio nella barra di stato richiede l'aggiornamento.

CFrameWnd::GetTitle

Recupera il titolo dell'oggetto finestra.

CString GetTitle() const;

Valore restituito

Oggetto CString contenente il titolo corrente dell'oggetto finestra.

CFrameWnd::InitialUpdateFrame

Chiamare IntitialUpdateFrame dopo aver creato un nuovo frame con Create.

void InitialUpdateFrame(
    CDocument* pDoc,
    BOOL bMakeVisible);

Parametri

pDoc
Punta al documento a cui è associata la finestra cornice. Può essere NULL.

bMakeVisible
Se TRUE, indica che il frame deve diventare visibile e attivo. Se FALSE, nessun discendente viene reso visibile.

Osservazioni:

In questo modo tutte le visualizzazioni della finestra cornice ricevono le chiamate OnInitialUpdate .

Inoltre, se in precedenza non era presente una visualizzazione attiva, la visualizzazione principale della finestra cornice viene resa attiva. La visualizzazione primaria è una visualizzazione con UN ID figlio di AFX_IDW_PANE_FIRST. Infine, la finestra cornice viene resa visibile se bMakeVisible è diverso da zero. Se bMakeVisible è 0, lo stato attivo corrente e lo stato visibile della finestra cornice rimarranno invariati. Non è necessario chiamare questa funzione quando si usa l'implementazione del framework di File New e File Open.

CFrameWnd::InModalState

Chiamare questa funzione membro per verificare se una finestra cornice è modale o senza modalità.

BOOL InModalState() const;

Valore restituito

Diverso da zero se sì; in caso contrario, 0.

CFrameWnd::IsTracking

Chiamare questa funzione membro per determinare se la barra di divisione nella finestra è in corso di spostamento.

BOOL IsTracking() const;

Valore restituito

Diverso da zero se è in corso un'operazione di divisione; in caso contrario, 0.

CFrameWnd::LoadAccelTable

Chiamare per caricare la tabella di tasti di scelta rapida specificata.

BOOL LoadAccelTable(LPCTSTR lpszResourceName);

Parametri

lpszResourceName
Identifica il nome della risorsa dell'acceleratore. Usare MAKEINTRESOURCE se la risorsa viene identificata con un ID intero.

Valore restituito

Diverso da zero se la tabella dell'acceleratore è stata caricata correttamente; in caso contrario, 0.

Osservazioni:

È possibile caricare una sola tabella alla volta.

Le tabelle acceleratori caricate dalle risorse vengono liberate automaticamente quando l'applicazione termina.

Se si chiama LoadFrame per creare la finestra cornice, il framework carica una tabella di acceleratore insieme alle risorse di menu e icone e una chiamata successiva a questa funzione membro non è necessaria.

CFrameWnd::LoadBarState

Chiamare questa funzione per ripristinare le impostazioni di ogni barra di controllo di proprietà della finestra cornice.

void LoadBarState(LPCTSTR lpszProfileName);

Parametri

lpszProfileName
Nome di una sezione nel file di inizializzazione (INI) o una chiave nel Registro di sistema di Windows in cui vengono archiviate le informazioni sullo stato.

Osservazioni:

Le informazioni ripristinate includono visibilità, orientamento orizzontale/verticale, stato di ancoraggio e posizione della barra di controllo.

Le impostazioni da ripristinare devono essere scritte nel Registro di sistema prima di chiamare LoadBarState. Scrivere le informazioni nel Registro di sistema chiamando CWinApp::SetRegistryKey. Scrivere le informazioni nel file INI chiamando SaveBarState.

CFrameWnd::LoadFrame

Chiamare per creare dinamicamente una finestra cornice dalle informazioni sulle risorse.

virtual BOOL LoadFrame(
    UINT nIDResource,
    DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE,
    CWnd* pParentWnd = NULL,
    CCreateContext* pContext = NULL);

Parametri

nIDResource
ID delle risorse condivise associate alla finestra cornice.

dwDefaultStyle
Stile della cornice. Includi lo FWS_ADDTOTITLE stile se vuoi che la barra del titolo visualizzi automaticamente il nome del documento rappresentato nella finestra.

pParentWnd
Puntatore all'elemento padre del frame.

pContext
Puntatore a una CCreateContext struttura. Questo parametro può essere NULL.

Osservazioni:

Costruire un CFrameWnd oggetto in due passaggi. Richiamare innanzitutto il costruttore , che costruisce l'oggetto CFrameWnd e quindi chiamare LoadFrame, che carica la finestra cornice di Windows e le risorse associate e collega la finestra cornice all'oggetto CFrameWnd . Il nIDResource parametro specifica il menu, la tabella dell'acceleratore, l'icona e la risorsa stringa del titolo per la finestra cornice.

Usare la Create funzione membro anziché LoadFrame quando si desidera specificare tutti i parametri di creazione della finestra cornice.

Il framework chiama LoadFrame quando crea una finestra cornice usando un oggetto modello di documento.

Il framework usa l'argomento pContext per specificare gli oggetti da connettere alla finestra cornice, inclusi gli oggetti visualizzazione contenuti. È possibile impostare l'argomento pContext su NULL quando si chiama LoadFrame.

CFrameWnd::m_bAutoMenuEnable

Quando questo membro dati è abilitato (ovvero l'impostazione predefinita), le voci di menu che non dispongono ON_UPDATE_COMMAND_UI di gestori o ON_COMMAND verranno disabilitate automaticamente quando l'utente trascina verso il basso un menu.

BOOL m_bAutoMenuEnable;

Osservazioni:

Le voci di menu con un ON_COMMAND gestore, ma nessun ON_UPDATE_COMMAND_UI gestore verrà abilitato automaticamente.

Quando questo membro dati è impostato, le voci di menu vengono abilitate automaticamente nello stesso modo in cui i pulsanti della barra degli strumenti sono abilitati.

Nota

m_bAutoMenuEnable non ha alcun effetto sulle voci di menu di primo livello.

Questo membro dati semplifica l'implementazione di comandi facoltativi in base alla selezione corrente e riduce la necessità di scrivere ON_UPDATE_COMMAND_UI gestori per abilitare e disabilitare le voci di menu.

Esempio

// CMainFrame is application-defined object of type CFrameWnd
CMainFrame::CMainFrame()
    : m_hDrawMenu(NULL), m_hDrawAccel(NULL), m_bCheck(false), m_nWindowTimer(0), m_nCallbackTimer(0)
{
   // Set to FALSE so no ON_UPDATE_COMMAND_UI
   // or ON_COMMAND handlers are needed, and
   // CMenu::EnableMenuItem() will work as expected.
   m_bAutoMenuEnable = FALSE;
}

CFrameWnd::NegotiateBorderSpace

Chiamare questa funzione membro per negoziare lo spazio del bordo in una finestra cornice durante l'attivazione del posto OLE.

virtual BOOL NegotiateBorderSpace(
    UINT nBorderCmd,
    LPRECT lpRectBorder);

Parametri

nBorderCmd
Contiene uno dei valori seguenti di enum BorderCmd:

  • borderGet = 1

  • borderRequest = 2

  • borderSet = 3

lpRectBorder
Puntatore a una RECT struttura o a un CRect oggetto che specifica le coordinate del bordo.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Questa funzione membro è l'implementazione CFrameWnd della negoziazione dello spazio di bordo OLE.

CFrameWnd::OnBarCheck

Chiamato ogni volta che viene eseguita un'azione sulla barra di controllo specificata.

afx_msg BOOL OnBarCheck(UINT nID);

Parametri

nID
ID della barra di controllo visualizzata.

Valore restituito

Diverso da zero se la barra di controllo esiste; in caso contrario, 0.

CFrameWnd::OnContextHelp

Gestisce la Guida MAIUSC+F1 per gli elementi sul posto.

afx_msg void OnContextHelp();

Osservazioni:

Per abilitare la Guida sensibile al contesto, è necessario aggiungere un

ON_COMMAND(ID_CONTEXT_HELP, &CMainFrame::OnContextHelp)

istruzione alla CFrameWnd mappa dei messaggi della classe e aggiungere anche una voce di tabella acceleratore, in genere MAIUSC+F1, per abilitare questa funzione membro.

Se l'applicazione è un contenitore OLE, OnContextHelp inserisce tutti gli elementi sul posto contenuti nell'oggetto finestra cornice in modalità Guida. Il cursore passa a una freccia e a un punto interrogativo e l'utente può quindi spostare il puntatore del mouse e premere il pulsante sinistro del mouse per selezionare una finestra di dialogo, una finestra, un menu o un pulsante di comando. Questa funzione membro chiama la funzione WinHelp Windows con il contesto della Guida dell'oggetto sotto il cursore.

CFrameWnd::OnCreateClient

Chiamato dal framework durante l'esecuzione di OnCreate.

virtual BOOL OnCreateClient(
    LPCREATESTRUCT lpcs,
    CCreateContext* pContext);

Parametri

lpcs
Puntatore a una struttura di Windows CREATESTRUCT .

pContext
Puntatore a una CCreateContext struttura.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Non chiamare mai questa funzione.

L'implementazione predefinita di questa funzione crea un CView oggetto dalle informazioni fornite in pContext, se possibile.

Eseguire l'override di questa funzione per sostituire i valori passati nell'oggetto CCreateContext o per modificare il modo in cui vengono creati i controlli nell'area client principale della finestra cornice. I CCreateContext membri di cui è possibile eseguire l'override CCreateContext sono descritti nella classe .

Nota

Non sostituire i valori passati nella CREATESTRUCT struttura. Sono solo per uso informativo. Se si vuole eseguire l'override del rettangolo della finestra iniziale, ad esempio, eseguire l'override della CWnd funzione PreCreateWindowmembro .

CFrameWnd::OnHideMenuBar

Questa funzione viene chiamata quando il sistema sta per nascondere la barra dei menu nell'applicazione MFC corrente.

virtual void OnHideMenuBar();

Osservazioni:

Questo gestore eventi consente all'applicazione di eseguire azioni personalizzate quando il sistema sta per nascondere il menu. Non è possibile impedire che il menu venga nascosto, ma è possibile, ad esempio, chiamare altri metodi per recuperare lo stile o lo stato del menu.

CFrameWnd::OnSetPreviewMode

Chiamare questa funzione membro per impostare la finestra cornice principale dell'applicazione nella modalità di anteprima di stampa ed e al di fuori di essa.

virtual void OnSetPreviewMode(
    BOOL bPreview,
    CPrintPreviewState* pState);

Parametri

bPreview
Specifica se posizionare o meno l'applicazione in modalità anteprima di stampa. Impostare su per TRUE posizionare l'anteprima di stampa per FALSE annullare la modalità di anteprima.

pState
Puntatore a una CPrintPreviewState struttura.

Osservazioni:

L'implementazione predefinita disabilita tutte le barre degli strumenti standard e nasconde il menu principale e la finestra client principale. In questo modo le finestre cornice MDI vengono trasformate in finestre cornice SDI temporanee.

Eseguire l'override di questa funzione membro per personalizzare il nascondiglio e la visualizzazione delle barre di controllo e di altre parti della finestra cornice durante l'anteprima di stampa. Chiamare l'implementazione della classe di base dall'interno della versione sottoposta a override.

CFrameWnd::OnShowMenuBar

Questa funzione viene chiamata quando il sistema sta per visualizzare la barra dei menu nell'applicazione MFC corrente.

virtual void OnShowMenuBar();

Osservazioni:

Questo gestore eventi consente all'applicazione di eseguire azioni personalizzate quando il menu sta per essere visualizzato. Non è possibile impedire la visualizzazione del menu, ma è possibile, ad esempio, chiamare altri metodi per recuperare lo stile o lo stato del menu.

CFrameWnd::OnUpdateControlBarMenu

Chiamato dal framework quando viene aggiornato il menu associato.

afx_msg void OnUpdateControlBarMenu(CCmdUI* pCmdUI);

Parametri

pCmdUI
Puntatore a un CCmdUI oggetto che rappresenta il menu che ha generato il comando di aggiornamento. Il gestore di aggiornamento chiama la Enable funzione membro dell'oggetto CCmdUI tramite pCmdUI per aggiornare l'interfaccia utente.

CFrameWnd::RecalcLayout

Chiamato dal framework quando le barre di controllo standard vengono attivate o disattivate o quando la finestra cornice viene ridimensionata.

virtual void RecalcLayout(BOOL bNotify = TRUE);

Parametri

bNotify
Determina se l'elemento sul posto attivo per la finestra cornice riceve una notifica della modifica del layout. Se TRUE, l'elemento riceve una notifica; in caso contrario FALSE, .

Osservazioni:

L'implementazione predefinita di questa funzione membro chiama la CWnd funzione membro per riposizionare tutte le barre di controllo nel frame e nella finestra client principale (in genere o MDICLIENTCView ).RepositionBars

Eseguire l'override di questa funzione membro per controllare l'aspetto e il comportamento delle barre di controllo dopo la modifica del layout della finestra cornice. Ad esempio, chiamarlo quando si attivano o si disattivano le barre di controllo o si aggiunge un'altra barra di controllo.

CFrameWnd::rectDefault

Passare questo valore statico CRect come parametro durante la creazione di una finestra per consentire a Windows di scegliere la dimensione e la posizione iniziali della finestra.

static AFX_DATA const CRect rectDefault;

CFrameWnd::SaveBarState

Chiamare questa funzione per archiviare informazioni su ogni barra di controllo di proprietà della finestra cornice.

void SaveBarState(LPCTSTR lpszProfileName) const;

Parametri

lpszProfileName
Nome di una sezione nel file di inizializzazione o una chiave nel Registro di sistema di Windows in cui vengono archiviate le informazioni sullo stato.

Osservazioni:

Queste informazioni possono essere lette dal file di inizializzazione usando LoadBarState. Le informazioni archiviate includono visibilità, orientamento orizzontale/verticale, stato di ancoraggio e posizione della barra di controllo.

CFrameWnd::SetActivePreviewView

Definisce la visualizzazione specificata come visualizzazione attiva per l'anteprima avanzata.

void SetActivePreviewView(CView* pViewNew);

Parametri

pViewNew
Puntatore a una visualizzazione da attivare.

Osservazioni:

CFrameWnd::SetActiveView

Chiamare questa funzione membro per impostare la visualizzazione attiva.

void SetActiveView(
    CView* pViewNew,
    BOOL bNotify = TRUE);

Parametri

pViewNew
Specifica un puntatore a un CView oggetto o NULL per nessuna visualizzazione attiva.

bNotify
Specifica se la visualizzazione deve ricevere una notifica di attivazione. Se TRUE, OnActivateView viene chiamato per la nuova visualizzazione; se FALSE, non è .

Osservazioni:

Il framework chiamerà automaticamente questa funzione quando l'utente cambia lo stato attivo in una visualizzazione all'interno della finestra cornice. È possibile chiamare SetActiveView in modo esplicito per modificare lo stato attivo sulla visualizzazione specificata.

CFrameWnd::SetDockState

Chiamare questa funzione membro per applicare le informazioni sullo stato archiviate in un CDockState oggetto alle barre di controllo della finestra cornice.

void SetDockState(const CDockState& state);

Parametri

state
Applicare lo stato archiviato alle barre di controllo della finestra cornice.

Osservazioni:

Per ripristinare uno stato precedente delle barre di controllo, è possibile caricare lo stato archiviato con CDockState::LoadState o Serialize, quindi usarlo SetDockState per applicarlo alle barre di controllo della finestra cornice. Lo stato precedente viene archiviato nell'oggetto CDockState con GetDockState

CFrameWnd::SetMenuBarState

Imposta lo stato di visualizzazione del menu nell'applicazione MFC corrente su nascosto o visualizzato.

virtual BOOL SetMenuBarState(DWORD nState);

Parametri

nState
[in] Specifica se visualizzare o nascondere il menu. Il nState parametro può avere i valori seguenti:

  • AFX_MBS_VISIBLE (0x01) - Visualizza il menu se è nascosto, ma non ha alcun effetto se è visibile.
  • AFX_MBS_HIDDEN (0x02): nasconde il menu se è visibile, ma non ha alcun effetto se è nascosto.

Valore restituito

TRUE se questo metodo cambia correttamente lo stato del menu; in caso contrario, FALSE.

Osservazioni:

Se si verifica un errore di runtime, questo metodo asserisce in modalità Debug e genera un'eccezione derivata dalla CException classe .

CFrameWnd::SetMenuBarVisibility

Imposta il comportamento predefinito del menu nell'applicazione MFC corrente in modo che sia nascosto o visibile.

virtual void SetMenuBarVisibility(DWORD nStyle);

Parametri

nStyle
[in] Specifica se il menu è nascosto per impostazione predefinita o è visibile e ha lo stato attivo. Il nStyle parametro può avere i valori seguenti:

  • AFX_MBV_KEEPVISIBLE (0x01): il menu viene visualizzato sempre e per impostazione predefinita non ha lo stato attivo.

  • AFX_MBV_DISPLAYONFOCUS (0x02): il menu è nascosto per impostazione predefinita. Se il menu è nascosto, premere ALT per visualizzare il menu e assegnare lo stato attivo. Se viene visualizzato il menu, premere ALT o ESC per nascondere il menu.

  • AFX_MBV_DISPLAYONFOCUS | AFX_MBV_DISPLAYONF10 (0x06): il menu è nascosto per impostazione predefinita. Se il menu è nascosto, premere F10 per visualizzare il menu e assegnare lo stato attivo. Se viene visualizzato il menu, premere F10 per attivare o disattivare lo stato attivo. Il menu viene visualizzato fino a quando non si preme ALT o ESC per nasconderlo.

Osservazioni:

Se il valore del nStyle parametro non è valido, questo metodo asserisce in modalità Debug e genera CInvalidArgException in modalità Release. In caso di altri errori di runtime, questo metodo asserisce in modalità Debug e genera un'eccezione derivata dalla CException classe .

Questo metodo influisce sullo stato dei menu nelle applicazioni scritte per Windows Vista e versioni successive.

CFrameWnd::SetMessageText

Chiamare questa funzione per inserire una stringa nel riquadro della barra di stato con ID 0.

void SetMessageText(LPCTSTR lpszText);
void SetMessageText(UINT nID);

Parametri

lpszText
Punta alla stringa da posizionare sulla barra di stato.

nID
ID risorsa stringa della stringa da posizionare sulla barra di stato.

Osservazioni:

Si tratta in genere del riquadro più a sinistra e più lungo della barra di stato.

CFrameWnd::SetProgressBarPosition

Imposta la posizione corrente per la barra di stato di Windows 7 visualizzata sulla barra delle applicazioni.

void SetProgressBarPosition(int nProgressPos);

Parametri

nProgressPos
Specifica la posizione da impostare. Deve essere compreso nell'intervallo impostato da SetProgressBarRange.

Osservazioni:

CFrameWnd::SetProgressBarRange

Imposta l'intervallo per la barra di stato di Windows 7 visualizzata sulla barra delle applicazioni.

void SetProgressBarRange(
    int nRangeMin,
    int nRangeMax);

Parametri

nRangeMin
Valore minimo.

nRangeMax
Valore massimo.

Osservazioni:

CFrameWnd::SetProgressBarState

Imposta il tipo e lo stato dell'indicatore di stato visualizzato su un pulsante della barra delle applicazioni.

void SetProgressBarState(TBPFLAG tbpFlags);

Parametri

tbpFlags
Flag che controllano lo stato corrente del pulsante di stato. Specificare solo uno dei flag seguenti perché tutti gli stati si escludono a vicenda: TBPF_NOPROGRESS, TBPF_INDETERMINATETBPF_NORMAL, TBPF_PAUSEDTBPF_ERROR.

Osservazioni:

CFrameWnd::SetTaskbarOverlayIcon

Con overload. Applica una sovrimpressione a un pulsante della barra delle applicazioni per indicare lo stato dell'applicazione o per notificare all'utente.

BOOL SetTaskbarOverlayIcon(
    UINT nIDResource,
    LPCTSTR lpcszDescr);

BOOL SetTaskbarOverlayIcon(
    HICON hIcon,
    LPCTSTR lpcszDescr);

Parametri

nIDResource
Specifica l'ID risorsa di un'icona da usare come sovrimpressione. Per informazioni dettagliate, vedere la descrizione hIcon .

lpcszDescr
Puntatore a una stringa che fornisce una versione di testo alternativo delle informazioni trasmesse dalla sovrimpressione, ai fini dell'accessibilità.

hIcon
Handle di un'icona da usare come sovrimpressione. Dovrebbe essere un'icona piccola, misurando 16x16 pixel a 96 punti per pollice (dpi). Se un'icona di sovrimpressione è già applicata al pulsante della barra delle applicazioni, tale sovrimpressione esistente viene sostituita. Il valore può essere NULL. La modalità di gestione di un NULL valore dipende dal fatto che il pulsante della barra delle applicazioni rappresenti una singola finestra o un gruppo di finestre. È responsabilità dell'applicazione chiamante liberarsi hIcon quando non è più necessaria.

Valore restituito

TRUE se ha esito positivo; FALSE se la versione del sistema operativo è minore di Windows 7 o se si verifica un errore impostando l'icona.

Osservazioni:

CFrameWnd::SetTitle

Imposta il titolo dell'oggetto finestra.

void SetTitle(LPCTSTR lpszTitle);

Parametri

lpszTitle
Puntatore a una stringa di caratteri contenente il titolo dell'oggetto finestra.

CFrameWnd::ShowControlBar

Chiamare questa funzione membro per visualizzare o nascondere la barra di controllo.

void ShowControlBar(
    CControlBar* pBar,
    BOOL bShow,
    BOOL bDelay);

Parametri

pBar
Puntatore alla barra di controllo da visualizzare o nascondere.

bShow
Se TRUE, specifica che la barra di controllo deve essere visualizzata. Se FALSE, specifica che la barra di controllo deve essere nascosta.

bDelay
Se TRUE, ritardare la visualizzazione della barra di controllo. Se FALSE, visualizzare immediatamente la barra di controllo.

CFrameWnd::ShowOwnedWindows

Chiamare questa funzione membro per visualizzare tutte le finestre discendenti dell'oggetto CFrameWnd .

void ShowOwnedWindows(BOOL bShow);

Parametri

bShow
Specifica se le finestre di proprietà devono essere visualizzate o nascoste.

Vedi anche

CWnd Classe
Grafico della gerarchia
CWnd Classe
CMDIFrameWnd Classe
CMDIChildWnd Classe
CView Classe
CDocTemplate Classe
CRuntimeClass Struttura