Dela via


CFrameWnd-klass

Tillhandahåller funktionerna i ett SDI-fönster (Single Document Interface) i Windows som överlappas eller popup-fönstret, tillsammans med medlemmar för att hantera fönstret.

Syntax

class CFrameWnd : public CWnd

Medlemmar

Offentliga konstruktorer

Namn Beskrivning
CFrameWnd::CFrameWnd Konstruerar ett CFrameWnd objekt.

Offentliga metoder

Namn Beskrivning
CFrameWnd::ActivateFrame Gör ramen synlig och tillgänglig för användaren.
CFrameWnd::BeginModalState Anger ramfönstret till modal.
CFrameWnd::Create Anropa för att skapa och initiera windows-ramfönstret som är associerat med CFrameWnd objektet.
CFrameWnd::CreateView Skapar en vy inom en ram som inte härleds från CView.
CFrameWnd::DockControlBar Dockar ett kontrollfält.
CFrameWnd::EnableDocking Tillåter att ett kontrollfält dockas.
CFrameWnd::EndModalState Avslutar ramfönstrets modala tillstånd. Aktiverar alla fönster inaktiverade av BeginModalState.
CFrameWnd::FloatControlBar Flyter ett kontrollfält.
CFrameWnd::GetActiveDocument Returnerar det aktiva CDocument objektet.
CFrameWnd::GetActiveFrame Returnerar det aktiva CFrameWnd objektet.
CFrameWnd::GetActiveView Returnerar det aktiva CView objektet.
CFrameWnd::GetControlBar Hämtar kontrollfältet.
CFrameWnd::GetDockState Hämtar dockningstillståndet för ett ramfönster.
CFrameWnd::GetMenuBarState Hämtar visningstillståndet för menyn i det aktuella MFC-programmet.
CFrameWnd::GetMenuBarVisibility Anger om standardbeteendet för menyn i det aktuella MFC-programmet antingen är dolt eller synligt.
CFrameWnd::GetMessageBar Returnerar en pekare till statusfältet som tillhör ramfönstret.
CFrameWnd::GetMessageString Hämtar ett meddelande som motsvarar ett kommando-ID.
CFrameWnd::GetTitle Hämtar rubriken för det relaterade kontrollfältet.
CFrameWnd::InitialUpdateFrame Gör att medlemsfunktionen OnInitialUpdate som hör till alla vyer i ramfönstret anropas.
CFrameWnd::InModalState Returnerar ett värde som anger om ett ramfönster är i ett modalt tillstånd eller inte.
CFrameWnd::IsTracking Avgör om delningsfältet för närvarande flyttas.
CFrameWnd::LoadAccelTable Anropa för att läsa in en acceleratortabell.
CFrameWnd::LoadBarState Anropa för att återställa inställningarna för kontrollfältet.
CFrameWnd::LoadFrame Anropa för att dynamiskt skapa ett ramfönster från resursinformation.
CFrameWnd::NegotiateBorderSpace Förhandlar om kantutrymme i ramfönstret.
CFrameWnd::OnBarCheck Anropas när en åtgärd utförs i det angivna kontrollfältet.
CFrameWnd::OnContextHelp Hanterar SKIFT+F1-hjälpen för objekt på plats.
CFrameWnd::OnSetPreviewMode Anger programmets huvudramfönster till och från förhandsgranskningsläget.
CFrameWnd::OnUpdateControlBarMenu Anropas av ramverket när den associerade menyn uppdateras.
CFrameWnd::RecalcLayout Flyttar kontrollstaplarna för CFrameWnd objektet.
CFrameWnd::SaveBarState Anropa för att spara inställningar för kontrollfältet.
CFrameWnd::SetActivePreviewView Anger att den angivna vyn ska vara den aktiva vyn för Rich Preview.
CFrameWnd::SetActiveView Anger det aktiva CView objektet.
CFrameWnd::SetDockState Anropa för att docka ramfönstret i huvudfönstret.
CFrameWnd::SetMenuBarState Anger visningstillståndet för menyn i det aktuella MFC-programmet till dolt eller visas.
CFrameWnd::SetMenuBarVisibility Anger att standardbeteendet för menyn i det aktuella MFC-programmet ska vara dolt eller synligt.
CFrameWnd::SetMessageText Anger texten i ett standardstatusfält.
CFrameWnd::SetProgressBarPosition Anger aktuell position för förloppsindikatorn för Windows 7 som visas i aktivitetsfältet.
CFrameWnd::SetProgressBarRange Anger intervallet för Förloppsindikatorn för Windows 7 som visas i aktivitetsfältet.
CFrameWnd::SetProgressBarState Anger typ och tillstånd för förloppsindikatorn som visas på en knapp i aktivitetsfältet.
CFrameWnd::SetTaskbarOverlayIcon Överbelastad. Tillämpar ett överlägg på en knapp i aktivitetsfältet för att ange programstatus eller ett meddelande till användaren.
CFrameWnd::SetTitle Anger rubriken för det relaterade kontrollfältet.
CFrameWnd::ShowControlBar Anropa för att visa kontrollfältet.
CFrameWnd::ShowOwnedWindows Visar alla fönster som är underordnade CFrameWnd objekt.

Skyddade metoder

Namn Beskrivning
CFrameWnd::OnCreateClient Skapar ett klientfönster för ramen.
CFrameWnd::OnHideMenuBar Anropas innan menyn i det aktuella MFC-programmet är dold.
CFrameWnd::OnShowMenuBar Anropas innan menyn i det aktuella MFC-programmet visas.

Medlemmar i offentliga data

Namn Beskrivning
CFrameWnd::m_bAutoMenuEnable Styr automatisk aktivering och inaktivering av funktioner för menyalternativ.
CFrameWnd::rectDefault Skicka detta statiskt CRect som en parameter när du skapar ett CFrameWnd objekt så att Windows kan välja fönstrets ursprungliga storlek och position.

Anmärkningar

Om du vill skapa ett användbart ramfönster för ditt program härleder du en klass från CFrameWnd. Lägg till medlemsvariabler i den härledda klassen för att lagra data som är specifika för ditt program. Implementera medlemsfunktioner för meddelandehanterare och en meddelandekarta i den härledda klassen för att ange vad som händer när meddelanden dirigeras till fönstret.

Det finns tre sätt att skapa ett ramfönster:

  • Konstruera den direkt med hjälp av Create.

  • Konstruera den direkt med hjälp av LoadFrame.

  • Konstruera den indirekt med hjälp av en dokumentmall.

Innan du anropar antingen Create eller LoadFramemåste du konstruera objektet frame-window på heapen med hjälp av C++ new -operatorn. Innan du anropar Createkan du också registrera en fönsterklass med den AfxRegisterWndClass globala funktionen för att ange ikonen och klassformaten för ramen.

Create Använd medlemsfunktionen för att skicka ramens skapandeparametrar som omedelbara argument.

LoadFrame kräver färre argument än Createoch hämtar i stället de flesta av standardvärdena från resurser, inklusive ramens bildtext, ikon, acceleratortabell och meny. För att kunna nås av LoadFramemåste alla dessa resurser ha samma resurs-ID (till exempel IDR_MAINFRAME).

När ett CFrameWnd objekt innehåller vyer och dokument skapas de indirekt av ramverket i stället för direkt av programmeraren. Objektet CDocTemplate samordnar skapandet av ramen, skapandet av de innehållande vyerna och anslutningen av vyerna till lämpligt dokument. Konstruktorns CDocTemplate parametrar anger de CRuntimeClass tre klasser som ingår (dokument, ram och vy). Ett CRuntimeClass objekt används av ramverket för att dynamiskt skapa nya ramar när det anges av användaren (till exempel genom att använda kommandot File New eller kommandot multiple document interface (MDI) Window New).

En ramfönsterklass som härleds från CFrameWnd måste deklareras med DECLARE_DYNCREATE för att mekanismen ovan RUNTIME_CLASS ska fungera korrekt.

A CFrameWnd innehåller standardimplementeringar för att utföra följande funktioner i ett huvudfönster i ett typiskt program för Windows:

  • Ett CFrameWnd ramfönster håller reda på en aktiv vy som är oberoende av det aktiva Windows-fönstret eller det aktuella indatafokuset. När ramen återaktiveras meddelas den aktiva vyn genom att anropa CView::OnActivateView.

  • Kommandomeddelanden och många vanliga rammeddelandemeddelanden, inklusive de som hanteras av OnSetFocusfunktionerna OnHScroll, OnVScrolloch , CWnd delegeras av ett CFrameWnd ramfönster till den aktiva vyn.

  • Den aktiva vyn (eller för närvarande aktivt underordnat MDI-ramfönster om det gäller en MDI-ram) kan bestämma beskrivningen av ramfönstret. Den här funktionen kan inaktiveras genom att stänga av formatbiten FWS_ADDTOTITLE i ramfönstret.

  • Ett CFrameWnd ramfönster hanterar placering av kontrollstaplar, vyer och andra underordnade fönster i ramfönstrets klientområde. Ett bildrutefönster uppdaterar också verktygsfältet och andra knappar i kontrollfältet. Ett CFrameWnd ramfönster har också standardimplementeringar av kommandon för att växla på och utanför verktygsfältet och statusfältet.

  • Ett CFrameWnd ramfönster hanterar huvudmenyfältet. När en popup-meny visas använder ramfönstret mekanismen UPDATE_COMMAND_UI för att avgöra vilka menyalternativ som ska aktiveras, inaktiveras eller kontrolleras. När användaren väljer ett menyalternativ uppdaterar ramfönstret statusfältet med meddelandesträngen för kommandot.

  • Ett CFrameWnd ramfönster har en valfri acceleratortabell som automatiskt översätter tangentbordsacceleratorer.

  • Ett CFrameWnd ramfönster har ett valfritt hjälp-ID med LoadFrame som används för sammanhangsberoende hjälp. Ett ramfönster är huvudorkestreraren för semimodala tillstånd, till exempel sammanhangskänslig hjälp (SKIFT+F1) och utskriftsförhandsgranskningslägen.

  • Ett CFrameWnd ramfönster öppnar en fil som dras från Filhanteraren och tas bort i ramfönstret. Om ett filnamnstillägg har registrerats och associerats med programmet svarar ramfönstret på den öppna begäran om dynamiskt datautbyte (DDE) som inträffar när användaren öppnar en datafil i Filhanteraren eller när ShellExecute Windows-funktionen anropas.

  • Om ramfönstret är huvudprogrammets fönster (d.s.a CWinThread::m_pMainWnd. ), när användaren stänger programmet uppmanas användaren att spara ändrade dokument (för OnClose och OnQueryEndSession).

  • Om ramfönstret är huvudprogrammets fönster är ramfönstret kontexten för att köra WinHelp. Om du stänger ramfönstret stängs WINHELP.EXE det om det startades för att få hjälp med det här programmet.

Använd inte C++ delete -operatorn för att förstöra ett ramfönster. Använd CWnd::DestroyWindow i stället. Implementeringen CFrameWnd av PostNcDestroy tar bort C++-objektet när fönstret förstörs. När användaren stänger ramfönstret anropar OnClosestandardhanteraren DestroyWindow .

Mer information om CFrameWndfinns i Rama in Windows.

Arvshierarki

CObject

CCmdTarget

CWnd

CFrameWnd

Kravspecifikation

rubrik:afxwin.h

CFrameWnd::ActivateFrame

Anropa den här medlemsfunktionen för att aktivera och återställa ramfönstret så att det är synligt och tillgängligt för användaren.

virtual void ActivateFrame(int nCmdShow = -1);

Parameterar

nCmdShow
Anger parametern som ska skickas till CWnd::ShowWindow. Som standard visas ramen och återställs korrekt.

Anmärkningar

Den här medlemsfunktionen anropas vanligtvis efter en icke-användargränssnittshändelse, till exempel en DDE, OLE eller annan händelse som kan visa ramfönstret eller dess innehåll för användaren.

Standardimplementeringen aktiverar ramen och tar den överst i Z-ordningen och utför vid behov samma steg för programmets huvudramfönster.

Åsidosätt den här medlemsfunktionen för att ändra hur en ram aktiveras. Du kan till exempel tvinga MDI-underordnade fönster att maximeras. Lägg till lämpliga funktioner och anropa sedan basklassversionen med en explicit nCmdShow.

Exempel

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

   CMDIChildWnd::ActivateFrame(nCmdShow);
}

CFrameWnd::BeginModalState

Anropa den här medlemsfunktionen för att göra ett ramfönster modal.

virtual void BeginModalState();

CFrameWnd::CFrameWnd

Konstruerar ett CFrameWnd objekt, men skapar inte det synliga ramfönstret.

CFrameWnd();

Anmärkningar

Anropa Create för att skapa det synliga fönstret.

CFrameWnd::Create

Anropa för att skapa och initiera windows-ramfönstret som är associerat med CFrameWnd objektet.

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);

Parameterar

lpszClassName
Pekar på en null-avslutad teckensträng som namnger Windows-klassen. Klassnamnet kan vara valfritt namn som registrerats med den AfxRegisterWndClass globala funktionen eller RegisterClass Windows-funktionen. Om NULLanvänder använder de fördefinierade standardattributen CFrameWnd .

lpszWindowName
Pekar på en null-avslutad teckensträng som representerar fönsternamnet. Används som text för namnlisten.

dwStyle
Anger attribut för fönsterformat . Inkludera formatmallen FWS_ADDTOTITLE om du vill att namnlisten automatiskt ska visa namnet på dokumentet som representeras i fönstret.

rect
Anger fönstrets storlek och position. Med rectDefault värdet kan Windows ange storlek och position för det nya fönstret.

pParentWnd
Anger det överordnade fönstret i det här ramfönstret. Den här parametern ska vara NULL för ramfönster på översta nivån.

lpszMenuName
Identifierar namnet på den menyresurs som ska användas med fönstret. Använd MAKEINTRESOURCE om menyn har ett heltals-ID i stället för en sträng. Den här parametern kan vara NULL.

dwExStyle
Anger de utökade formatmallsattributen för fönstret.

pContext
Anger en pekare till en CCreateContext struktur. Den här parametern kan vara NULL.

Returvärde

Nonzero om initieringen lyckas. annars 0.

Anmärkningar

Konstruera ett CFrameWnd objekt i två steg. Anropa först konstruktorn, som konstruerar CFrameWnd objektet, och anropa Createsedan , som skapar Windows-ramfönstret och kopplar det till CFrameWnd objektet. Create initierar fönstrets klassnamn och fönsternamn och registrerar standardvärden för dess stil, överordnade och associerade meny.

Använd LoadFrame i stället Create för att läsa in ramfönstret från en resurs i stället för att ange argumenten.

CFrameWnd::CreateView

Anropa CreateView för att skapa en vy inom en ram.

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

Parameterar

pContext
Anger typ av vy och dokument.

nID
ID-numret för en vy.

Returvärde

Pekare till ett CWnd objekt om det lyckas, annars NULL.

Anmärkningar

Använd den här medlemsfunktionen för att skapa "vyer" som inte CViewär -härledda inom en ram. När du har anropat CreateViewmåste du manuellt ställa in vyn på aktiv och ange att den ska vara synlig. Dessa uppgifter utförs inte automatiskt av CreateView.

CFrameWnd::DockControlBar

Gör att ett kontrollfält dockas till ramfönstret.

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

Parameterar

pBar
Pekar på kontrollfältet som ska dockas.

nDockBarID
Avgör vilka sidor av ramfönstret som ska övervägas för dockning. Det kan vara 0 eller ett eller flera av följande:

  • AFX_IDW_DOCKBAR_TOP Docka längst upp i ramfönstret.

  • AFX_IDW_DOCKBAR_BOTTOM Docka längst ned i ramfönstret.

  • AFX_IDW_DOCKBAR_LEFT Docka till vänster i ramfönstret.

  • AFX_IDW_DOCKBAR_RIGHT Docka till höger i ramfönstret.

Om 0 kan kontrollfältet dockas till valfri sida som är aktiverad för dockning i målramfönstret.

lpRect
Avgör i skärmkoordinater var kontrollfältet ska dockas i det icke-tillfälliga området i målramfönstret.

Anmärkningar

Kontrollfältet kommer att dockas till en av sidorna i ramfönstret som anges i anropen till både CControlBar::EnableDocking och CFrameWnd::EnableDocking. Den sida som väljs bestäms av nDockBarID.

CFrameWnd::EnableDocking

Anropa den här funktionen för att aktivera dockningsbara kontrollstaplar i ett ramfönster.

void EnableDocking(DWORD dwDockStyle);

Parameterar

dwDockStyle
Anger vilka sidor av ramfönstret som kan fungera som dockningsplatser för kontrollstaplar. Det kan vara ett eller flera av följande:

  • CBRS_ALIGN_TOP Tillåter dockning överst i klientområdet.

  • CBRS_ALIGN_BOTTOM Tillåter dockning längst ned i klientområdet.

  • CBRS_ALIGN_LEFT Tillåter dockning till vänster i klientområdet.

  • CBRS_ALIGN_RIGHT Tillåter dockning till höger i klientområdet.

  • CBRS_ALIGN_ANY Tillåter dockning på alla sidor av klientområdet.

Anmärkningar

Som standard dockas kontrollstaplar till en sida av ramfönstret i följande ordning: överst, nederkant, vänster, höger.

Exempel

Se exemplet för CToolBar::Create.

CFrameWnd::EndModalState

Anropa den här medlemsfunktionen för att ändra ett ramfönster från modal till modelös.

virtual void EndModalState();

Anmärkningar

EndModalState aktiverar alla fönster inaktiverade av BeginModalState.

CFrameWnd::FloatControlBar

Anropa den här funktionen för att göra så att ett kontrollfält inte dockas till ramfönstret.

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

Parameterar

pBar
Pekar på kontrollfältet som ska flyta.

point
Platsen, i skärmkoordinater, där det övre vänstra hörnet i kontrollfältet placeras.

dwStyle
Anger om kontrollfältet ska justeras vågrätt eller lodrätt i det nya ramfönstret. Det kan vara något av följande:

  • CBRS_ALIGN_TOP Orienterar kontrollfältet lodrätt.

  • CBRS_ALIGN_BOTTOM Orienterar kontrollfältet lodrätt.

  • CBRS_ALIGN_LEFT Visar kontrollfältet vågrätt.

  • CBRS_ALIGN_RIGHT Visar kontrollfältet vågrätt.

Om formatmallar skickas som anger både vågrät och lodrät orientering, kommer verktygsfältet att vara vågrätt.

Anmärkningar

Detta görs vanligtvis vid programstart när programmet återställer inställningarna från föregående körning.

Den här funktionen anropas av ramverket när användaren orsakar en släppåtgärd genom att släppa den vänstra musknappen medan du drar kontrollfältet över en plats som inte är tillgänglig för dockning.

CFrameWnd::GetActiveDocument

Anropa den här medlemsfunktionen för att hämta en pekare till den aktuella CDocument aktiva vyn.

virtual CDocument* GetActiveDocument();

Returvärde

En pekare till den aktuella CDocument. Om det inte finns något aktuellt dokument returnerar NULL.

CFrameWnd::GetActiveFrame

Anropa den här medlemsfunktionen för att hämta en pekare till det aktiva underfönstret för flera dokumentgränssnitt (MDI) i ett MDI-ramfönster.

virtual CFrameWnd* GetActiveFrame();

Returvärde

En pekare till det aktiva underordnad MDI-fönstret. Om programmet är ett SDI-program, eller om MDI-ramfönstret inte har något aktivt dokument, returneras den implicita this pekaren.

Anmärkningar

Om det inte finns något aktivt MDI-underordnat eller om programmet är ett enda dokumentgränssnitt (SDI) returneras den implicita this pekaren.

CFrameWnd::GetActiveView

Anropa den här medlemsfunktionen för att hämta en pekare till den aktiva vyn (om någon) som är kopplad till ett ramfönster (CFrameWnd).

CView* GetActiveView() const;

Returvärde

En pekare till den aktuella CView. Om det inte finns någon aktuell vy returnerar NULL.

Anmärkningar

Den här funktionen returnerar NULL när den anropas för ett MDI-huvudramfönster (CMDIFrameWnd). I ett MDI-program har MDI-huvudramsfönstret ingen vy associerad med den. I stället har varje enskilt underordnat fönster (CMDIChildWnd) en eller flera associerade vyer. Den aktiva vyn i ett MDI-program kan hämtas genom att först hitta det aktiva underordnad MDI-fönstret och sedan hitta den aktiva vyn för det underordnade fönstret. Det aktiva underordnad MDI-fönstret kan hittas genom att anropa funktionen MDIGetActive eller GetActiveFrame enligt följande:

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

Anropa GetControlBar för att få åtkomst till kontrollfältet som är associerat med ID:t.

CControlBar* GetControlBar(UINT nID);

Parameterar

nID
ID-numret för ett kontrollfält.

Returvärde

En pekare till kontrollfältet som är associerat med ID:t.

Anmärkningar

Parametern nID refererar till den unika identifierare som skickas till Create -metoden i kontrollfältet. Mer information om kontrollstaplar finns i avsnittet Kontrollstaplar.

GetControlBar returnerar kontrollfältet även om det är flytande och därför inte är ett underordnat fönster i ramen.

CFrameWnd::GetDockState

Anropa den här medlemsfunktionen för att lagra tillståndsinformation om ramfönstrets kontrollstaplar i ett CDockState objekt.

void GetDockState(CDockState& state) const;

Parameterar

state
Innehåller det aktuella tillståndet för ramfönstrets kontrollstaplar vid retur.

Anmärkningar

Du kan sedan skriva innehållet i CDockState till lagringen med eller CDockState::SaveStateSerialize . Om du senare vill återställa kontrollstaplarna till ett tidigare tillstånd läser du in tillståndet med CDockState::LoadState eller Serializeoch anropar SetDockState sedan för att tillämpa föregående tillstånd på ramfönstrets kontrollstaplar.

CFrameWnd::GetMenuBarState

Hämtar visningstillståndet för menyn i det aktuella MFC-programmet.

virtual DWORD GetMenuBarState();

Returvärde

Returvärdet kan ha följande värden:

  • AFX_MBS_VISIBLE (0x01) – Menyn visas.

  • AFX_MBS_HIDDEN (0x02) – Menyn är dold.

Anmärkningar

Om ett körningsfel inträffar, hävdar den här metoden i felsökningsläge och genererar ett undantag som härleds från CException klassen.

CFrameWnd::GetMenuBarVisibility

Anger om standardtillståndet för menyn i det aktuella MFC-programmet är dolt eller synligt.

virtual DWORD CFrameWnd::GetMenuBarVisibility();

Returvärde

Den här metoden returnerar något av följande värden:

  • AFX_MBV_KEEPVISIBLE (0x01) – Menyn visas alltid och har som standard inte fokus.

  • AFX_MBV_DISPLAYONFOCUS (0x02) – Menyn är dold som standard. Om menyn är dold trycker du på ALT-tangenten för att visa menyn och ge den fokus. Om menyn visas trycker du på ALT- eller ESC-tangenten för att dölja den.

  • AFX_MBV_DISPLAYONFOCUS | AFX_MBV_DISPLAYONF10 (0x06) – Menyn är dold som standard. Om menyn är dold trycker du på F10 för att visa menyn och ge den fokus. Om menyn visas trycker du på F10-tangenten för att växla fokus på eller utanför menyn. Menyn visas tills du trycker på ALT- eller ESC-tangenten för att dölja den.

Anmärkningar

Om ett körningsfel inträffar, hävdar den här metoden i felsökningsläge och genererar ett undantag som härleds från CException klassen.

CFrameWnd::GetMessageBar

Anropa den här medlemsfunktionen för att hämta en pekare till statusfältet.

virtual CWnd* GetMessageBar();

Returvärde

Pekare till statusfältets fönster.

CFrameWnd::GetMessageString

Åsidosätt den här funktionen för att tillhandahålla anpassade strängar för kommando-ID:t.

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

Parameterar

nID
Resurs-ID för önskat meddelande.

rMessage
CString objekt som meddelandet ska placeras i.

Anmärkningar

Standardimplementeringen läser helt enkelt in strängen som anges av nID från resursfilen. Den här funktionen anropas av ramverket när meddelandesträngen i statusfältet behöver uppdateras.

CFrameWnd::GetTitle

Hämtar namnet på fönsterobjektet.

CString GetTitle() const;

Returvärde

Ett CString objekt som innehåller den aktuella rubriken för fönsterobjektet.

CFrameWnd::InitialUpdateFrame

Anropa IntitialUpdateFrame när du har skapat en ny ram med Create.

void InitialUpdateFrame(
    CDocument* pDoc,
    BOOL bMakeVisible);

Parameterar

pDoc
Pekar på det dokument som ramfönstret är associerat med. Kan vara NULL.

bMakeVisible
Om TRUEanger anger att ramen ska bli synlig och aktiv. Om FALSEvisas inga underordnade.

Anmärkningar

Detta gör att alla vyer i ramfönstret tar emot sina OnInitialUpdate anrop.

Om det inte tidigare fanns en aktiv vy aktiveras också den primära vyn i ramfönstret. Den primära vyn är en vy med ett underordnat ID för AFX_IDW_PANE_FIRST. Slutligen görs ramfönstret synligt om bMakeVisible det inte är noll. Om bMakeVisible är 0 förblir det aktuella fokuset och det synliga tillståndet för ramfönstret oförändrat. Det är inte nödvändigt att anropa den här funktionen när du använder ramverkets implementering av Ny fil och Öppna fil.

CFrameWnd::InModalState

Anropa den här medlemsfunktionen för att kontrollera om ett ramfönster är modalt eller lägeslöst.

BOOL InModalState() const;

Returvärde

Nonzero om ja; annars 0.

CFrameWnd::IsTracking

Anropa den här medlemsfunktionen för att avgöra om delningsfältet i fönstret för närvarande flyttas.

BOOL IsTracking() const;

Returvärde

Nonzero om en splitteråtgärd pågår. annars 0.

CFrameWnd::LoadAccelTable

Anropa för att läsa in den angivna acceleratortabellen.

BOOL LoadAccelTable(LPCTSTR lpszResourceName);

Parameterar

lpszResourceName
Identifierar namnet på acceleratorns resurs. Använd MAKEINTRESOURCE om resursen identifieras med ett heltals-ID.

Returvärde

Nonzero om acceleratortabellen har lästs in. annars 0.

Anmärkningar

Endast en tabell kan läsas in i taget.

Acceleratortabeller som läses in från resurser frigörs automatiskt när programmet avslutas.

Om du anropar LoadFrame för att skapa ramfönstret läser ramverket in en acceleratortabell tillsammans med menyn och ikonresurserna, och ett efterföljande anrop till den här medlemsfunktionen är då onödigt.

CFrameWnd::LoadBarState

Anropa den här funktionen för att återställa inställningarna för varje kontrollfält som ägs av ramfönstret.

void LoadBarState(LPCTSTR lpszProfileName);

Parameterar

lpszProfileName
Namn på ett avsnitt i initieringsfilen (INI) eller en nyckel i Windows-registret där tillståndsinformation lagras.

Anmärkningar

Den återställde informationen omfattar synlighet, vågrät/lodrät orientering, dockningstillstånd och kontrollstapelposition.

De inställningar som du vill återställa måste skrivas till registret innan du anropar LoadBarState. Skriv informationen till registret genom att anropa CWinApp::SetRegistryKey. Skriv informationen till INI-filen genom att anropa SaveBarState.

CFrameWnd::LoadFrame

Anropa för att dynamiskt skapa ett ramfönster från resursinformation.

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

Parameterar

nIDResource
ID för delade resurser som är associerade med ramfönstret.

dwDefaultStyle
Ramens formatmall. Inkludera formatmallen FWS_ADDTOTITLE om du vill att namnlisten automatiskt ska visa namnet på dokumentet som representeras i fönstret.

pParentWnd
En pekare till ramens överordnade.

pContext
En pekare till en CCreateContext struktur. Den här parametern kan vara NULL.

Anmärkningar

Konstruera ett CFrameWnd objekt i två steg. Anropa först konstruktorn, som konstruerar CFrameWnd objektet, och anropa LoadFramesedan , som läser in Windows-ramfönstret och associerade resurser och kopplar ramfönstret till CFrameWnd objektet. Parametern nIDResource anger menyn, acceleratortabellen, ikonen och strängresursen för rubriken för ramfönstret.

Create Använd medlemsfunktionen i stället LoadFrame för när du vill ange alla ramfönstrets skapandeparametrar.

Ramverket anropar LoadFrame när det skapar ett ramfönster med hjälp av ett dokumentmallsobjekt.

Ramverket pContext använder argumentet för att ange vilka objekt som ska anslutas till ramfönstret, inklusive eventuella objekt i en innesluten vy. Du kan ange argumentet pContext till NULL när du anropar LoadFrame.

CFrameWnd::m_bAutoMenuEnable

När den här datamedlemmen är aktiverad (vilket är standard) inaktiveras menyalternativ som inte har ON_UPDATE_COMMAND_UI eller ON_COMMAND hanterare automatiskt när användaren hämtar en meny.

BOOL m_bAutoMenuEnable;

Anmärkningar

Menyalternativ som har en ON_COMMAND hanterare men ingen ON_UPDATE_COMMAND_UI hanterare aktiveras automatiskt.

När den här datamedlemmen har angetts aktiveras menyalternativ automatiskt på samma sätt som verktygsfältsknappar aktiveras.

Anmärkning

m_bAutoMenuEnable har ingen effekt på menyalternativ på den översta nivån.

Den här datamedlemmen förenklar implementeringen av valfria kommandon baserat på det aktuella valet och minskar behovet av att skriva ON_UPDATE_COMMAND_UI hanterare för att aktivera och inaktivera menyalternativ.

Exempel

// 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

Anropa den här medlemsfunktionen för att förhandla om kantutrymme i ett ramfönster under OLE-aktivering på plats.

virtual BOOL NegotiateBorderSpace(
    UINT nBorderCmd,
    LPRECT lpRectBorder);

Parameterar

nBorderCmd
Innehåller något av följande värden från enum BorderCmd:

  • borderGet = 1

  • borderRequest = 2

  • borderSet = 3

lpRectBorder
Pekare till en RECT struktur eller ett CRect objekt som anger koordinaterna för kantlinjen.

Returvärde

Nonzero om det lyckas; annars 0.

Anmärkningar

Den här medlemsfunktionen är implementeringen CFrameWnd av OLE-gränsrymdsförhandling.

CFrameWnd::OnBarCheck

Anropas när en åtgärd utförs i det angivna kontrollfältet.

afx_msg BOOL OnBarCheck(UINT nID);

Parameterar

nID
ID:t för kontrollfältet som visas.

Returvärde

Nonzero om kontrollfältet fanns. annars 0.

CFrameWnd::OnContextHelp

Hanterar SKIFT+F1-hjälpen för objekt på plats.

afx_msg void OnContextHelp();

Anmärkningar

Om du vill aktivera sammanhangsberoende hjälp måste du lägga till en

ON_COMMAND(ID_CONTEXT_HELP, &CMainFrame::OnContextHelp)

-instruktion till din CFrameWnd klassmeddelandekarta och lägg även till en acceleratortabellpost, vanligtvis SKIFT+F1, för att aktivera den här medlemsfunktionen.

Om ditt program är en OLE-container OnContextHelp placerar du alla objekt på plats i ramfönstrets objekt i hjälpläge. Markören ändras till en pil och ett frågetecken, och användaren kan sedan flytta muspekaren och trycka på den vänstra musknappen för att välja en dialogruta, ett fönster, en meny eller en kommandoknapp. Den här medlemsfunktionen anropar Windows-funktionen WinHelp med hjälpkontexten för objektet under markören.

CFrameWnd::OnCreateClient

Anropas av ramverket under körningen av OnCreate.

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

Parameterar

lpcs
En pekare till en Windows-struktur CREATESTRUCT .

pContext
En pekare till en CCreateContext struktur.

Returvärde

Nonzero om det lyckas; annars 0.

Anmärkningar

Anropa aldrig den här funktionen.

Standardimplementeringen av den här funktionen skapar ett CView objekt från informationen i pContext, om möjligt.

Åsidosätt den här funktionen för att åsidosätta värden som skickas i CCreateContext objektet eller för att ändra hur kontroller i huvudklientområdet i ramfönstret skapas. De CCreateContext medlemmar som du kan åsidosätta beskrivs i CCreateContext klassen.

Anmärkning

Ersätt inte värden som skickas CREATESTRUCT i strukturen. De är endast för informationsanvändning. Om du till exempel vill åsidosätta den första fönsterrektangeln åsidosätter CWnd du medlemsfunktionen PreCreateWindow.

CFrameWnd::OnHideMenuBar

Den här funktionen anropas när systemet är på väg att dölja menyraden i det aktuella MFC-programmet.

virtual void OnHideMenuBar();

Anmärkningar

Med den här händelsehanteraren kan ditt program utföra anpassade åtgärder när systemet håller på att dölja menyn. Du kan inte förhindra att menyn döljs, men du kan till exempel anropa andra metoder för att hämta menyformatet eller -tillståndet.

CFrameWnd::OnSetPreviewMode

Anropa den här medlemsfunktionen för att ställa in programmets huvudramfönster i och ur läget för förhandsgranskning.

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

Parameterar

bPreview
Anger om programmet ska förhandsgranskningsläge eller inte. Ställ in på TRUE förhandsgranskning FALSE för att avbryta förhandsgranskningsläget.

pState
En pekare till en CPrintPreviewState struktur.

Anmärkningar

Standardimplementeringen inaktiverar alla standardverktygsfält och döljer huvudmenyn och huvudklientfönstret. Detta omvandlar MDI-ramfönster till tillfälliga SDI-ramfönster.

Åsidosätt den här medlemsfunktionen för att anpassa döljande och visning av kontrollstaplar och andra ramfönsterdelar under förhandsgranskningen. Anropa basklassimplementeringen inifrån den åsidosatta versionen.

CFrameWnd::OnShowMenuBar

Den här funktionen anropas när systemet ska visa menyraden i det aktuella MFC-programmet.

virtual void OnShowMenuBar();

Anmärkningar

Med den här händelsehanteraren kan ditt program utföra anpassade åtgärder när menyn ska visas. Du kan inte förhindra att menyn visas, men du kan till exempel anropa andra metoder för att hämta menyformatet eller -tillståndet.

CFrameWnd::OnUpdateControlBarMenu

Anropas av ramverket när den associerade menyn uppdateras.

afx_msg void OnUpdateControlBarMenu(CCmdUI* pCmdUI);

Parameterar

pCmdUI
En pekare till ett CCmdUI objekt som representerar menyn som genererade uppdateringskommandot. Uppdateringshanteraren anropar Enable objektets CCmdUI medlemsfunktion för pCmdUI att uppdatera användargränssnittet.

CFrameWnd::RecalcLayout

Anropas av ramverket när standardkontrollstaplarna aktiveras eller inaktiveras eller när ramfönstret ändras.

virtual void RecalcLayout(BOOL bNotify = TRUE);

Parameterar

bNotify
Avgör om det aktiva objektet på plats för ramfönstret får ett meddelande om layoutändringen. Om TRUE, meddelas objektet, annars FALSE.

Anmärkningar

Standardimplementeringen av den här medlemsfunktionen anropar CWnd medlemsfunktionen RepositionBars för att flytta alla kontrollstaplar i ramen samt i huvudklientfönstret (vanligtvis en CView eller MDICLIENT).

Åsidosätt den här medlemsfunktionen för att kontrollera utseendet och beteendet för kontrollstaplar när layouten för ramfönstret har ändrats. Du kan till exempel anropa det när du aktiverar eller inaktiverar kontrollstaplar eller lägger till ett annat kontrollfält.

CFrameWnd::rectDefault

Skicka den här statiska CRect som en parameter när du skapar ett fönster så att Windows kan välja fönstrets ursprungliga storlek och position.

static AFX_DATA const CRect rectDefault;

CFrameWnd::SaveBarState

Anropa den här funktionen för att lagra information om varje kontrollfält som ägs av ramfönstret.

void SaveBarState(LPCTSTR lpszProfileName) const;

Parameterar

lpszProfileName
Namn på ett avsnitt i initieringsfilen eller en nyckel i Windows-registret där tillståndsinformation lagras.

Anmärkningar

Den här informationen kan läsas från initieringsfilen med hjälp av LoadBarState. Lagrad information omfattar synlighet, vågrät/lodrät orientering, dockningstillstånd och kontrollstapelposition.

CFrameWnd::SetActivePreviewView

Anger att den angivna vyn ska vara den aktiva vyn för Rich Preview.

void SetActivePreviewView(CView* pViewNew);

Parameterar

pViewNew
En pekare till en vy som ska aktiveras.

Anmärkningar

CFrameWnd::SetActiveView

Anropa den här medlemsfunktionen för att ange den aktiva vyn.

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

Parameterar

pViewNew
Anger en pekare till ett CView objekt eller NULL för ingen aktiv vy.

bNotify
Anger om vyn ska meddelas om aktivering. Om TRUE, OnActivateView anropas för den nya vyn, om FALSE, är det inte det.

Anmärkningar

Ramverket anropar den här funktionen automatiskt när användaren ändrar fokus till en vy i ramfönstret. Du kan uttryckligen anropa SetActiveView för att ändra fokus till den angivna vyn.

CFrameWnd::SetDockState

Anropa den här medlemsfunktionen för att tillämpa tillståndsinformation som lagras i ett CDockState objekt på ramfönstrets kontrollstaplar.

void SetDockState(const CDockState& state);

Parameterar

state
Använd det lagrade tillståndet på ramfönstrets kontrollstaplar.

Anmärkningar

Om du vill återställa ett tidigare tillstånd för kontrollstaplarna kan du läsa in det lagrade tillståndet med CDockState::LoadState eller Serializeoch sedan använda SetDockState det för att tillämpa det på ramfönstrets kontrollstaplar. Det tidigare tillståndet lagras i objektet CDockState med GetDockState

CFrameWnd::SetMenuBarState

Anger visningstillståndet för menyn i det aktuella MFC-programmet till dolt eller visas.

virtual BOOL SetMenuBarState(DWORD nState);

Parameterar

nState
[i] Anger om menyn ska visas eller döljas. Parametern nState kan ha följande värden:

  • AFX_MBS_VISIBLE (0x01) – Visar menyn om den är dold, men har ingen effekt om den visas.
  • AFX_MBS_HIDDEN (0x02) – Döljer menyn om den är synlig, men har ingen effekt om den är dold.

Returvärde

TRUEom den här metoden ändrar menytillståndet. annars . FALSE

Anmärkningar

Om ett körningsfel inträffar, hävdar den här metoden i felsökningsläge och genererar ett undantag som härleds från CException klassen.

CFrameWnd::SetMenuBarVisibility

Anger att standardbeteendet för menyn i det aktuella MFC-programmet ska vara dolt eller synligt.

virtual void SetMenuBarVisibility(DWORD nStyle);

Parameterar

nStyle
[i] Anger om menyn är dold som standard eller om den är synlig och har fokus. Parametern nStyle kan ha följande värden:

  • AFX_MBV_KEEPVISIBLE (0x01) – Menyn visas alltid och har som standard inte fokus.

  • AFX_MBV_DISPLAYONFOCUS (0x02) – Menyn är dold som standard. Om menyn är dold trycker du på ALT-tangenten för att visa menyn och ge den fokus. Om menyn visas trycker du på ALT- eller ESC-tangenten för att dölja menyn.

  • AFX_MBV_DISPLAYONFOCUS | AFX_MBV_DISPLAYONF10 (0x06) – Menyn är dold som standard. Om menyn är dold trycker du på F10 för att visa menyn och ge den fokus. Om menyn visas trycker du på F10-tangenten för att växla fokus på eller utanför menyn. Menyn visas tills du trycker på ALT- eller ESC-tangenten för att dölja den.

Anmärkningar

Om värdet för parametern nStyle inte är giltigt, hävdar den här metoden i felsökningsläge och höjs CInvalidArgException i versionsläge. Vid andra körningsfel, hävdar den här metoden i felsökningsläge och genererar ett undantag som härleds från CException klassen.

Den här metoden påverkar statusen för menyer i program som skrivits för Windows Vista och senare.

CFrameWnd::SetMessageText

Anropa den här funktionen för att placera en sträng i statusfältet som har ett ID på 0.

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

Parameterar

lpszText
Pekar på strängen som ska placeras i statusfältet.

nID
Strängresurs-ID för strängen som ska placeras i statusfältet.

Anmärkningar

Detta är vanligtvis det vänstra och längsta fönstret i statusfältet.

CFrameWnd::SetProgressBarPosition

Anger den aktuella positionen för förloppsindikatorn för Windows 7 som visas i aktivitetsfältet.

void SetProgressBarPosition(int nProgressPos);

Parameterar

nProgressPos
Anger den position som ska anges. Det måste ligga inom intervallet som anges av SetProgressBarRange.

Anmärkningar

CFrameWnd::SetProgressBarRange

Anger intervallet för förloppsindikatorn för Windows 7 som visas i aktivitetsfältet.

void SetProgressBarRange(
    int nRangeMin,
    int nRangeMax);

Parameterar

nRangeMin
Minimalt värde.

nRangeMax
Maximalt värde.

Anmärkningar

CFrameWnd::SetProgressBarState

Anger typ och tillstånd för förloppsindikatorn som visas på en knapp i aktivitetsfältet.

void SetProgressBarState(TBPFLAG tbpFlags);

Parameterar

tbpFlags
Flaggor som styr förloppsknappens aktuella tillstånd. Ange endast en av följande flaggor eftersom alla tillstånd är ömsesidigt uteslutande: TBPF_NOPROGRESS, TBPF_INDETERMINATE, TBPF_NORMAL, TBPF_ERROR, . TBPF_PAUSED

Anmärkningar

CFrameWnd::SetTaskbarOverlayIcon

Överbelastad. Tillämpar ett överlägg på en knapp i aktivitetsfältet för att ange programstatus eller för att meddela användaren.

BOOL SetTaskbarOverlayIcon(
    UINT nIDResource,
    LPCTSTR lpcszDescr);

BOOL SetTaskbarOverlayIcon(
    HICON hIcon,
    LPCTSTR lpcszDescr);

Parameterar

nIDResource
Anger resurs-ID för en ikon som ska användas som överlägg. Mer information finns i beskrivningen hIcon .

lpcszDescr
En pekare till en sträng som tillhandahåller en alternativtextversion av informationen som förmedlas av överlägget i hjälpmedelssyfte.

hIcon
Handtaget för en ikon som ska användas som överlägg. Detta bör vara en liten ikon som mäter 16 x 16 bildpunkter med 96 punkter per tum (dpi). Om en överläggsikon redan används på aktivitetsfältet ersätts det befintliga överlägget. Det här värdet kan vara NULL. Hur ett NULL värde hanteras beror på om knappen i aktivitetsfältet representerar ett enda fönster eller en grupp med fönster. Det är uppringningsprogrammets ansvar att kostnadsfritt hIcon när det inte längre behövs.

Returvärde

TRUE om det lyckas; FALSE om operativsystemets version är mindre än Windows 7 eller om ett fel inträffar när ikonen anges.

Anmärkningar

CFrameWnd::SetTitle

Anger namnet på fönsterobjektet.

void SetTitle(LPCTSTR lpszTitle);

Parameterar

lpszTitle
En pekare till en teckensträng som innehåller namnet på fönsterobjektet.

CFrameWnd::ShowControlBar

Anropa den här medlemsfunktionen för att visa eller dölja kontrollfältet.

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

Parameterar

pBar
Pekare till kontrollfältet som ska visas eller döljas.

bShow
Om TRUEanger anger du att kontrollfältet ska visas. Om FALSEanger anger du att kontrollfältet ska vara dolt.

bDelay
Om TRUE, fördröjning som visar kontrollfältet. Om FALSEvisar du kontrollfältet omedelbart.

CFrameWnd::ShowOwnedWindows

Anropa den här medlemsfunktionen för att visa alla fönster som är underordnade CFrameWnd objekt.

void ShowOwnedWindows(BOOL bShow);

Parameterar

bShow
Anger om de ägda fönstren ska visas eller döljas.

Se även

CWnd klass
hierarkidiagram
CWnd klass
CMDIFrameWnd klass
CMDIChildWnd klass
CView klass
CDocTemplate klass
CRuntimeClass Struktur