Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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
CFrameWndramfö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 anropaCView::OnActivateView.Kommandomeddelanden och många vanliga rammeddelandemeddelanden, inklusive de som hanteras av
OnSetFocusfunktionernaOnHScroll,OnVScrolloch ,CWnddelegeras av ettCFrameWndramfö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_ADDTOTITLEi ramfönstret.Ett
CFrameWndramfö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. EttCFrameWndramfönster har också standardimplementeringar av kommandon för att växla på och utanför verktygsfältet och statusfältet.Ett
CFrameWndramfönster hanterar huvudmenyfältet. När en popup-meny visas använder ramfönstret mekanismenUPDATE_COMMAND_UIfö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
CFrameWndramfönster har en valfri acceleratortabell som automatiskt översätter tangentbordsacceleratorer.Ett
CFrameWndramfönster har ett valfritt hjälp-ID medLoadFramesom 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
CFrameWndramfö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ärShellExecuteWindows-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örOnCloseochOnQueryEndSession).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.EXEdet 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
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_TOPDocka längst upp i ramfönstret.AFX_IDW_DOCKBAR_BOTTOMDocka längst ned i ramfönstret.AFX_IDW_DOCKBAR_LEFTDocka till vänster i ramfönstret.AFX_IDW_DOCKBAR_RIGHTDocka 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_TOPTillåter dockning överst i klientområdet.CBRS_ALIGN_BOTTOMTillåter dockning längst ned i klientområdet.CBRS_ALIGN_LEFTTillåter dockning till vänster i klientområdet.CBRS_ALIGN_RIGHTTillåter dockning till höger i klientområdet.CBRS_ALIGN_ANYTillå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_TOPOrienterar kontrollfältet lodrätt.CBRS_ALIGN_BOTTOMOrienterar kontrollfältet lodrätt.CBRS_ALIGN_LEFTVisar kontrollfältet vågrätt.CBRS_ALIGN_RIGHTVisar 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= 1borderRequest= 2borderSet= 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