Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poskytuje funkce rozhraní SDI (Single Document Interface) systému Windows překrývající se nebo automaticky otevírané okno rámečku spolu se členy pro správu okna.
Syntaxe
class CFrameWnd : public CWnd
Členové
Veřejné konstruktory
| Název | Popis |
|---|---|
CFrameWnd::CFrameWnd |
CFrameWnd Vytvoří objekt. |
Veřejné metody
| Název | Popis |
|---|---|
CFrameWnd::ActivateFrame |
Zviditelní a zpřístupní rámeček uživateli. |
CFrameWnd::BeginModalState |
Nastaví okno rámce na modální. |
CFrameWnd::Create |
Volání pro vytvoření a inicializaci okna rámce systému Windows přidruženého k objektu CFrameWnd . |
CFrameWnd::CreateView |
Vytvoří zobrazení v rámci rámce, který není odvozen z CView. |
CFrameWnd::DockControlBar |
Ukotví ovládací panel. |
CFrameWnd::EnableDocking |
Umožňuje ukotvit ovládací panel. |
CFrameWnd::EndModalState |
Ukončí modální stav okna rámečku. Povolí všechna okna zakázaná uživatelem BeginModalState. |
CFrameWnd::FloatControlBar |
Nastaví plovoucí ovládací panel. |
CFrameWnd::GetActiveDocument |
Vrátí aktivní CDocument objekt. |
CFrameWnd::GetActiveFrame |
Vrátí aktivní CFrameWnd objekt. |
CFrameWnd::GetActiveView |
Vrátí aktivní CView objekt. |
CFrameWnd::GetControlBar |
Načte ovládací panel. |
CFrameWnd::GetDockState |
Načte stav ukotvení okna rámečku. |
CFrameWnd::GetMenuBarState |
Načte stav zobrazení nabídky v aktuální aplikaci MFC. |
CFrameWnd::GetMenuBarVisibility |
Určuje, zda je výchozí chování nabídky v aktuální aplikaci MFC skryté nebo viditelné. |
CFrameWnd::GetMessageBar |
Vrátí ukazatel na stavový řádek patřící do okna rámce. |
CFrameWnd::GetMessageString |
Načte zprávu odpovídající ID příkazu. |
CFrameWnd::GetTitle |
Načte název souvisejícího řídicího panelu. |
CFrameWnd::InitialUpdateFrame |
OnInitialUpdate Způsobí, že se členová funkce patřící do všech zobrazení v okně rámce zavolá. |
CFrameWnd::InModalState |
Vrátí hodnotu určující, zda je okno rámce v modálním stavu. |
CFrameWnd::IsTracking |
Určuje, jestli se rozdělovač právě přesouvá. |
CFrameWnd::LoadAccelTable |
Volání pro načtení tabulky akcelerátoru |
CFrameWnd::LoadBarState |
Volání pro obnovení nastavení řídicího panelu |
CFrameWnd::LoadFrame |
Volání dynamického vytvoření okna rámce z informací o prostředcích |
CFrameWnd::NegotiateBorderSpace |
Vyjedná ohraničení v okně rámečku. |
CFrameWnd::OnBarCheck |
Volá se při každém provedení akce na zadaném řídicím panelu. |
CFrameWnd::OnContextHelp |
Zpracovává nápovědu SHIFT+F1 pro místní položky. |
CFrameWnd::OnSetPreviewMode |
Nastaví okno hlavního rámce aplikace do režimu náhledu tisku a z režimu náhledu. |
CFrameWnd::OnUpdateControlBarMenu |
Volá se rozhraním při aktualizaci přidružené nabídky. |
CFrameWnd::RecalcLayout |
Přemísťuje řídicí pruhy objektu CFrameWnd . |
CFrameWnd::SaveBarState |
Volání pro uložení nastavení řídicího panelu |
CFrameWnd::SetActivePreviewView |
Určuje zadané zobrazení jako aktivní zobrazení pro verzi Rich Preview. |
CFrameWnd::SetActiveView |
Nastaví aktivní CView objekt. |
CFrameWnd::SetDockState |
Volání pro ukotvení okna rámečku v hlavním okně |
CFrameWnd::SetMenuBarState |
Nastaví stav zobrazení nabídky v aktuální aplikaci MFC na skrytou nebo zobrazenou. |
CFrameWnd::SetMenuBarVisibility |
Nastaví výchozí chování nabídky v aktuální aplikaci MFC tak, aby byla skrytá nebo viditelná. |
CFrameWnd::SetMessageText |
Nastaví text standardního stavového řádku. |
CFrameWnd::SetProgressBarPosition |
Nastaví aktuální pozici indikátoru průběhu Windows 7 zobrazeného na hlavním panelu. |
CFrameWnd::SetProgressBarRange |
Nastaví rozsah indikátoru průběhu Windows 7 zobrazeného na hlavním panelu. |
CFrameWnd::SetProgressBarState |
Nastaví typ a stav indikátoru průběhu zobrazeného na tlačítku hlavního panelu. |
CFrameWnd::SetTaskbarOverlayIcon |
Přetíženo. Použije překryv na tlačítko hlavního panelu, které označuje stav aplikace nebo oznámení pro uživatele. |
CFrameWnd::SetTitle |
Nastaví název souvisejícího řídicího panelu. |
CFrameWnd::ShowControlBar |
Volání pro zobrazení řídicího panelu |
CFrameWnd::ShowOwnedWindows |
Zobrazí všechna okna, která jsou potomky objektu CFrameWnd . |
Chráněné metody
| Název | Popis |
|---|---|
CFrameWnd::OnCreateClient |
Vytvoří okno klienta pro rámec. |
CFrameWnd::OnHideMenuBar |
Volána před nabídkou v aktuální aplikaci MFC je skrytá. |
CFrameWnd::OnShowMenuBar |
Volá se před nabídkou v aktuální aplikaci MFC. |
Veřejné datové členy
| Název | Popis |
|---|---|
CFrameWnd::m_bAutoMenuEnable |
Řídí automatické povolení a zakázání funkcí pro položky nabídky. |
CFrameWnd::rectDefault |
Tuto statickou CRect funkci předejte jako parametr při vytváření objektu CFrameWnd , aby systém Windows mohl zvolit počáteční velikost a umístění okna. |
Poznámky
Chcete-li vytvořit užitečné okno rámce pro vaši aplikaci, odvodit třídu z CFrameWnd. Přidejte do odvozené třídy členské proměnné pro ukládání dat specifických pro vaši aplikaci. Implementujte členské funkce obslužné rutiny zpráv a mapu zpráv v odvozené třídě a určete, co se stane, když jsou zprávy směrovány do okna.
Existují tři způsoby vytvoření okna rámečku:
Přímo ho sestavujte pomocí
Create.Přímo ho sestavujte pomocí
LoadFrame.Nepřímo ji sestaví pomocí šablony dokumentu.
Před voláním nebo CreateLoadFrameje nutné vytvořit objekt okna rámce v haldě pomocí operátoru C++ new . Před voláním Createmůžete také zaregistrovat třídu okna s AfxRegisterWndClass globální funkcí, která nastaví ikonu a styly tříd pro rámeček.
Create Členské funkce slouží k předání parametrů vytvoření rámce jako okamžitých argumentů.
LoadFrame vyžaduje méně argumentů než Createa místo toho načte většinu výchozích hodnot z prostředků, včetně titulku rámečku, ikony, tabulky akcelerátoru a nabídky. Aby byly všechny tyto prostředky přístupné LoadFrame, musí mít stejné ID prostředku (například IDR_MAINFRAME).
CFrameWnd Pokud objekt obsahuje zobrazení a dokumenty, jsou vytvořeny nepřímo architekturou místo přímo programátorem. Objekt CDocTemplate orchestruje vytvoření rámce, vytvoření obsahujících zobrazení a propojení zobrazení s příslušným dokumentem. Parametry konstruktoru CDocTemplate určují CRuntimeClass tři zahrnuté třídy (dokument, rámec a zobrazení). Objekt CRuntimeClass je používán architekturou k dynamickému vytváření nových snímků při zadání uživatelem (například pomocí příkazu Nový soubor nebo více příkazů rozhraní dokumentu (MDI) Okno Nový).
Třída oken s rámečkem odvozená z CFrameWnd musí být deklarována, DECLARE_DYNCREATE aby výše uvedený RUNTIME_CLASS mechanismus fungoval správně.
Obsahuje CFrameWnd výchozí implementace pro provádění následujících funkcí hlavního okna v typické aplikaci pro Windows:
Okno
CFrameWndrámce sleduje aktuálně aktivní zobrazení, které je nezávislé na aktivním okně Windows nebo aktuálním fokusu vstupu. Při opětovné aktivaci rámce je aktivní zobrazení upozorněno volánímCView::OnActivateView.Zprávy příkazů a mnoho běžných zpráv s oznámením o rámečku, včetně těch, které zpracovává ,
OnSetFocusa funkce ,OnHScrolljsou delegoványOnVScrollCWndoknem rámce do aktuálněCFrameWndaktivního zobrazení.Aktuálně aktivní zobrazení (nebo aktuálně aktivní podřízené okno MDI v případě rámce MDI) může určit titulek okna rámce. Tuto funkci můžete zakázat vypnutím bitu
FWS_ADDTOTITLEstylu okna rámečku.Okno
CFrameWndrámečku spravuje umístění řídicích pruhů, zobrazení a dalších podřízených oken uvnitř klientské oblasti okna rámce. V okně rámečku se také aktualizuje panel nástrojů nečinnosti a další tlačítka ovládacích panelů. OknoCFrameWndrámečku má také výchozí implementace příkazů pro přepínání a vypnutí panelu nástrojů a stavového řádku.Okno
CFrameWndrámečku spravuje hlavní řádek nabídek. Když se zobrazí místní nabídka, okno rámce používáUPDATE_COMMAND_UImechanismus k určení položek nabídky, které mají být povolené, zakázané nebo zaškrtnuté. Když uživatel vybere položku nabídky, okno rámce aktualizuje stavový řádek řetězcem zprávy pro tento příkaz.Okno
CFrameWndrámečku obsahuje volitelnou tabulku akcelerátorů, která automaticky překládá akcelerátory klávesnice.Okno
CFrameWndrámce obsahuje volitelnou sadu ID nápovědyLoadFrame, které se používá pro kontextovou nápovědu. Okno rámečku je hlavním orchestrátorem polomodálních stavů, jako je kontextová nápověda (SHIFT+F1) a režimy náhledu tisku.V
CFrameWndokně rámečku se otevře soubor přetažený ze Správce souborů a v okně rámečku se přetáhne. Pokud je přípona souboru zaregistrovaná a přidružená k aplikaci, okno rámce odpoví na otevřený požadavek dynamické výměny dat (DDE), ke kterému dochází, když uživatel otevře datový soubor ve Správci souborů nebo kdyžShellExecuteje volána funkce Windows.Pokud je okno rámce hlavním oknem aplikace (to znamená
CWinThread::m_pMainWnd), když uživatel aplikaci zavře, zobrazí okno rámce výzvu k uložení všech upravených dokumentů (proOnCloseaOnQueryEndSession).Pokud je okno rámce hlavním oknem aplikace, je okno rámce kontextem pro spuštění nástroje WinHelp. Zavření okna rámečku se vypne
WINHELP.EXE, pokud byla spuštěna kvůli nápovědě pro tuto aplikaci.
Nepoužívejte operátor C++ delete ke zničení okna rámce. Místo toho použijte CWnd::DestroyWindow. Implementace CFrameWndPostNcDestroy odstraní objekt C++ při zničení okna. Když uživatel zavře okno rámce, bude výchozí OnClose obslužná rutina volat DestroyWindow.
Další informace naleznete v CFrameWndtématu Rámová okna.
Hierarchie dědičnosti
CFrameWnd
Požadavky
Záhlaví:afxwin.h
CFrameWnd::ActivateFrame
Voláním této členské funkce aktivujte a obnovte okno rámce, aby bylo viditelné a dostupné uživateli.
virtual void ActivateFrame(int nCmdShow = -1);
Parametry
nCmdShow
Určuje parametr, který se má CWnd::ShowWindowpředat . Ve výchozím nastavení se rámeček zobrazí a správně obnoví.
Poznámky
Tato členová funkce se obvykle volá po události jiného než uživatelského rozhraní, jako je DDE, OLE nebo jiná událost, která může uživateli zobrazit okno rámečku nebo jeho obsah.
Výchozí implementace aktivuje rámeček a přenese ho na začátek pořadí Z a v případě potřeby provede stejné kroky pro okno hlavního rámce aplikace.
Přepište tuto členovou funkci a změňte způsob aktivace rámce. Můžete například vynutit maximalizaci podřízených oken MDI. Přidejte odpovídající funkce a potom volejte verzi základní třídy explicitním nCmdShow.
Příklad
void CChildFrame::ActivateFrame(int nCmdShow)
{
// Create the child frame window maximized
nCmdShow = SW_MAXIMIZE;
CMDIChildWnd::ActivateFrame(nCmdShow);
}
CFrameWnd::BeginModalState
Voláním této členské funkce nastavíte modální okno rámce.
virtual void BeginModalState();
CFrameWnd::CFrameWnd
CFrameWnd Vytvoří objekt, ale nevytvoří viditelné okno rámce.
CFrameWnd();
Poznámky
Volání Create pro vytvoření viditelného okna
CFrameWnd::Create
Volání pro vytvoření a inicializaci okna rámce systému Windows přidruženého k objektu 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);
Parametry
lpszClassName
Odkazuje na řetězec znaků ukončený hodnotou null, který pojmenuje třídu Windows. Název třídy může být libovolný název zaregistrovaný v AfxRegisterWndClass globální funkci nebo RegisterClass funkci Windows. Pokud NULLpoužijete předdefinované výchozí CFrameWnd atributy.
lpszWindowName
Odkazuje na řetězec znaků s ukončenou hodnotou null, který představuje název okna. Slouží jako text pro záhlaví.
dwStyle
Určuje atributy stylu okna.
FWS_ADDTOTITLE Pokud chcete, aby záhlaví automaticky zobrazoval název dokumentu reprezentovaný v okně, zadejte styl.
rect
Určuje velikost a umístění okna. Tato rectDefault hodnota umožňuje systému Windows určit velikost a umístění nového okna.
pParentWnd
Určuje nadřazené okno tohoto okna rámce. Tento parametr by měl být NULL určen pro okna rámců nejvyšší úrovně.
lpszMenuName
Určuje název prostředku nabídky, který se má použít s oknem. Použijte MAKEINTRESOURCE , pokud má nabídka celé číslo ID místo řetězce. Tento parametr může být NULL.
dwExStyle
Určuje atributy rozšířeného stylu okna.
pContext
Určuje ukazatel na CCreateContext strukturu. Tento parametr může být NULL.
Návratová hodnota
Nenulové, pokud je inicializace úspěšná; jinak 0.
Poznámky
Vytvořte CFrameWnd objekt ve dvou krocích. Nejprve vyvoláte konstruktor, který vytvoří CFrameWnd objekt, a potom volání Create, který vytvoří okno rámečku Systému Windows a připojí jej k objektu CFrameWnd .
Create inicializuje název třídy okna a název okna a registruje výchozí hodnoty pro jeho styl, nadřazený a přidruženou nabídku.
LoadFrame Místo zadávání argumentů použijte Create místo zadávání argumentů okno rámce z prostředku.
CFrameWnd::CreateView
Volání CreateView pro vytvoření zobrazení v rámci.
CWnd* CreateView(
CCreateContext* pContext,
UINT nID = AFX_IDW_PANE_FIRST);
Parametry
pContext
Určuje typ zobrazení a dokumentu.
nID
Číslo ID zobrazení.
Návratová hodnota
Ukazatel na CWnd objekt, pokud je úspěšný; jinak NULL.
Poznámky
Pomocí této členské funkce můžete vytvořit zobrazení, která nejsou CViewodvozena v rámci rámce. Po volání CreateViewje nutné ručně nastavit zobrazení na aktivní a nastavit, aby bylo viditelné; tyto úlohy nejsou automaticky provedeny CreateView.
CFrameWnd::DockControlBar
Způsobí ukotvení ovládacího panelu do okna rámečku.
void DockControlBar(
CControlBar* pBar,
UINT nDockBarID = 0,
LPCRECT lpRect = NULL);
Parametry
pBar
Odkazuje na řídicí panel, který se má ukotvit.
nDockBarID
Určuje, které strany okna rámečku je třeba zvážit pro ukotvení. Může to být 0 nebo jedna nebo více z následujících možností:
AFX_IDW_DOCKBAR_TOPUkotvit horní stranu okna rámečkuAFX_IDW_DOCKBAR_BOTTOMUkotvit na spodní stranu okna rámečkuAFX_IDW_DOCKBAR_LEFTUkotvit levou stranu okna rámečku.AFX_IDW_DOCKBAR_RIGHTUkotvit na pravou stranu okna rámečku
Pokud 0, ovládací panel lze ukotvit na libovolnou stranu, aby se dokoval v okně cílového rámečku.
lpRect
Určuje v souřadnicích obrazovky, kde se řídicí panel ukotví v oblasti mimoclient v okně cílového rámce.
Poznámky
Ovládací panel se ukotví na jednu ze stran okna rámečku zadaných ve voláních obou CControlBar::EnableDocking a CFrameWnd::EnableDocking. Zvolená strana je určena nDockBarID.
CFrameWnd::EnableDocking
Voláním této funkce povolíte dokovatelné ovládací panely v okně rámečku.
void EnableDocking(DWORD dwDockStyle);
Parametry
dwDockStyle
Určuje, které strany okna rámečku mohou sloužit jako dokovací místa pro ovládací panely. Může to být jedna nebo více z následujících možností:
CBRS_ALIGN_TOPUmožňuje ukotvení v horní části klientské oblasti.CBRS_ALIGN_BOTTOMUmožňuje ukotvit v dolní části klientské oblasti.CBRS_ALIGN_LEFTUmožňuje ukotvit na levé straně klientské oblasti.CBRS_ALIGN_RIGHTUmožňuje ukotvit na pravé straně klientské oblasti.CBRS_ALIGN_ANYUmožňuje ukotvit na libovolné straně klientské oblasti.
Poznámky
Ve výchozím nastavení se řídicí pruhy ukotví na stranu okna rámečku v následujícím pořadí: horní, dolní, levý, pravý.
Příklad
Podívejte se na příklad pro CToolBar::Create.
CFrameWnd::EndModalState
Voláním této členské funkce změníte okno rámce z modální na bezmodální.
virtual void EndModalState();
Poznámky
EndModalState povolí všechna okna zakázaná uživatelem BeginModalState.
CFrameWnd::FloatControlBar
Voláním této funkce způsobíte, že ovládací panel nebude ukotvený do okna rámečku.
void FloatControlBar(
CControlBar* pBar,
CPoint point,
DWORD dwStyle = CBRS_ALIGN_TOP);
Parametry
pBar
Odkazuje na řídicí panel, který má být plovoucí.
point
Umístění v souřadnicích obrazovky, kde bude umístěn levý horní roh řídicího panelu.
dwStyle
Určuje, jestli se má řídicí panel vodorovně nebo svisle zarovnat v novém okně rámečku. Může se jednat o jednu z následujících možností:
CBRS_ALIGN_TOPOrientuje ovládací panel svisle.CBRS_ALIGN_BOTTOMOrientuje ovládací panel svisle.CBRS_ALIGN_LEFTOrientuje ovládací panel vodorovně.CBRS_ALIGN_RIGHTOrientuje ovládací panel vodorovně.
Pokud se předají styly určující vodorovnou i svislou orientaci, panel nástrojů bude orientovaný vodorovně.
Poznámky
Obvykle se to provádí při spuštění aplikace, když program obnovuje nastavení z předchozího spuštění.
Tato funkce je volána architekturou, když uživatel způsobí operaci přetažení uvolněním levého tlačítka myši a přetažením řídicího panelu přes umístění, které není k dispozici pro ukotvení.
CFrameWnd::GetActiveDocument
Voláním této členské funkce získáte ukazatel na aktuální CDocument připojenou k aktuálnímu aktivnímu zobrazení.
virtual CDocument* GetActiveDocument();
Návratová hodnota
Ukazatel na aktuální CDocument. Pokud neexistuje žádný aktuální dokument, vrátí hodnotu NULL.
CFrameWnd::GetActiveFrame
Voláním této členské funkce získáte ukazatel na aktivní podřízené okno rozhraní MDI (Multiple Document Interface) okna rámce MDI.
virtual CFrameWnd* GetActiveFrame();
Návratová hodnota
Ukazatel na aktivní podřízené okno MDI. Pokud je aplikace aplikací SDI nebo okno rámce MDI nemá žádný aktivní dokument, vrátí se implicitní this ukazatel.
Poznámky
Pokud neexistuje žádné aktivní podřízené rozhraní MDI nebo aplikace je jedno rozhraní dokumentu (SDI), vrátí se implicitní this ukazatel.
CFrameWnd::GetActiveView
Voláním této členské funkce získáte ukazatel na aktivní zobrazení (pokud existuje) připojený k oknem rámečku (CFrameWndpokud existuje).
CView* GetActiveView() const;
Návratová hodnota
Ukazatel na aktuální CView. Pokud neexistuje žádné aktuální zobrazení, vrátí hodnotu NULL.
Poznámky
Tato funkce se vrátí NULL , když se volá okno hlavního rámce MDI (CMDIFrameWnd). V aplikaci MDI nemá okno hlavního rámce MDI přidružené zobrazení. Místo toho má každé samostatné podřízené okno (CMDIChildWnd) jedno nebo více přidružených zobrazení. Aktivní zobrazení v aplikaci MDI lze získat tak, že nejprve vyhledá aktivní podřízené okno MDI a pak vyhledá aktivní zobrazení pro toto podřízené okno. Aktivní podřízené okno MDI lze najít voláním funkce MDIGetActive nebo GetActiveFrame podle následujícího příkladu:
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
Volání GetControlBar pro získání přístupu k řídicímu panelu přidruženému k ID
CControlBar* GetControlBar(UINT nID);
Parametry
nID
Číslo ID ovládacího panelu.
Návratová hodnota
Ukazatel na ovládací panel, který je přidružený k ID.
Poznámky
Parametr nID odkazuje na jedinečný identifikátor předaný Create metodě řídicího panelu. Další informace o řídicích pruhech najdete v tématu s názvem Řídicí pruhy.
GetControlBar vrátí ovládací panel, i když je plovoucí, a proto není aktuálně podřízeným oknem rámce.
CFrameWnd::GetDockState
Voláním této členské funkce uložíte informace o stavu řídicích pruhů okna rámečku v objektu CDockState .
void GetDockState(CDockState& state) const;
Parametry
state
Obsahuje aktuální stav řídicích pruhů okna rámečku po návratu.
Poznámky
Obsah pak můžete do úložiště zapisovat CDockState pomocí CDockState::SaveState nebo Serialize. Pokud později chcete ovládací panely obnovit do předchozího stavu, načtěte stav s CDockState::LoadStateSerializenebo a potom volání SetDockState , které použije předchozí stav u řídicích pruhů okna rámečku.
CFrameWnd::GetMenuBarState
Načte stav zobrazení nabídky v aktuální aplikaci MFC.
virtual DWORD GetMenuBarState();
Návratová hodnota
Vrácená hodnota může mít následující hodnoty:
AFX_MBS_VISIBLE(0x01) – nabídka je viditelná.AFX_MBS_HIDDEN(0x02) – nabídka je skrytá.
Poznámky
Pokud dojde k chybě za běhu, tato metoda provádí v režimu ladění a vyvolá výjimku odvozenou z CException třídy.
CFrameWnd::GetMenuBarVisibility
Určuje, zda je výchozí stav nabídky v aktuální aplikaci MFC skrytý nebo viditelný.
virtual DWORD CFrameWnd::GetMenuBarVisibility();
Návratová hodnota
Tato metoda vrátí jednu z následujících hodnot:
AFX_MBV_KEEPVISIBLE(0x01) – Nabídka se zobrazuje vždy a ve výchozím nastavení fokus neobsahuje.AFX_MBV_DISPLAYONFOCUS(0x02) – nabídka je ve výchozím nastavení skrytá. Pokud je nabídka skrytá, stisknutím klávesy ALT zobrazte nabídku a dejte jí fokus. Pokud se nabídka zobrazí, stiskněte klávesu ALT nebo ESC a skryjte ji.AFX_MBV_DISPLAYONFOCUS | AFX_MBV_DISPLAYONF10(0x06) – nabídka je ve výchozím nastavení skrytá. Pokud je nabídka skrytá, stisknutím klávesy F10 zobrazte nabídku a dejte jí fokus. Pokud se nabídka zobrazí, stisknutím klávesy F10 přepněte fokus na nabídku nebo ji vypněte. Nabídka se zobrazí, dokud nestisknete klávesu ALT nebo ESC a skryjete ji.
Poznámky
Pokud dojde k chybě za běhu, tato metoda provádí v režimu ladění a vyvolá výjimku odvozenou z CException třídy.
CFrameWnd::GetMessageBar
Voláním této členské funkce získáte ukazatel na stavový řádek.
virtual CWnd* GetMessageBar();
Návratová hodnota
Ukazatel na okno stavového řádku
CFrameWnd::GetMessageString
Tuto funkci přepište tak, aby poskytovala vlastní řetězce pro ID příkazů.
virtual void GetMessageString(
UINT nID,
CString& rMessage) const;
Parametry
nID
ID prostředku požadované zprávy.
rMessage
CString objekt, do kterého chcete zprávu umístit.
Poznámky
Výchozí implementace jednoduše načte řetězec zadaný nID ze souboru prostředků. Tato funkce je volána architekturou, když řetězec zprávy na stavovém řádku potřebuje aktualizovat.
CFrameWnd::GetTitle
Načte název objektu okna.
CString GetTitle() const;
Návratová hodnota
Objekt CString obsahující aktuální název objektu okna.
CFrameWnd::InitialUpdateFrame
Volání IntitialUpdateFrame po vytvoření nového rámce s Create.
void InitialUpdateFrame(
CDocument* pDoc,
BOOL bMakeVisible);
Parametry
pDoc
Odkazuje na dokument, ke kterému je přidružené okno rámečku. Může to být NULL.
bMakeVisible
Pokud TRUEoznačuje, že by měl být snímek viditelný a aktivní. Pokud FALSEse nezobrazí žádné potomky.
Poznámky
To způsobí, že všechna zobrazení v okně rámce budou přijímat volání OnInitialUpdate .
Také pokud nebylo dříve aktivní zobrazení, primární zobrazení okna rámečku je aktivní. Primární zobrazení je zobrazení s podřízeným ID AFX_IDW_PANE_FIRST. Nakonec je okno rámečku viditelné, pokud bMakeVisible je nenulové. Pokud bMakeVisible je 0, zůstane aktuální fokus a viditelný stav okna rámečku beze změny. Při použití implementace File New a File Open není nutné tuto funkci volat.
CFrameWnd::InModalState
Voláním této členské funkce zkontrolujte, jestli je okno rámce modální nebo bez režimu.
BOOL InModalState() const;
Návratová hodnota
Nenulové, pokud ano; jinak 0.
CFrameWnd::IsTracking
Voláním této členské funkce určíte, jestli se rozdělovač v okně právě přesouvá.
BOOL IsTracking() const;
Návratová hodnota
Nenulové, pokud probíhá operace rozdělení; jinak 0.
CFrameWnd::LoadAccelTable
Volání pro načtení zadané tabulky akcelerátoru
BOOL LoadAccelTable(LPCTSTR lpszResourceName);
Parametry
lpszResourceName
Identifikuje název prostředku akcelerátoru. Použijte MAKEINTRESOURCE , pokud je prostředek identifikován s celočíselnou ID.
Návratová hodnota
Nenulové, pokud byla tabulka akcelerátorů úspěšně načtena; jinak 0.
Poznámky
Najednou lze načíst pouze jednu tabulku.
Tabulky akcelerátoru načtené z prostředků se automaticky uvolní při ukončení aplikace.
Pokud voláte LoadFrame vytvoření okna rámce, architektura načte tabulku akcelerátoru spolu s prostředky nabídky a ikony a následné volání této členské funkce je pak zbytečné.
CFrameWnd::LoadBarState
Voláním této funkce obnovíte nastavení každého řídicího panelu vlastněného oknem rámečku.
void LoadBarState(LPCTSTR lpszProfileName);
Parametry
lpszProfileName
Název oddílu v souboru inicializace (INI) nebo klíč v registru Systému Windows, kde jsou uloženy informace o stavu.
Poznámky
Obnovené informace zahrnují viditelnost, vodorovnou/svislou orientaci, stav ukotvení a pozici řídicího panelu.
Nastavení, která chcete obnovit, musí být před voláním LoadBarStatezapsána do registru . Zapište informace do registru voláním CWinApp::SetRegistryKey. Zapište informace do souboru INI voláním SaveBarState.
CFrameWnd::LoadFrame
Volání dynamického vytvoření okna rámce z informací o prostředcích
virtual BOOL LoadFrame(
UINT nIDResource,
DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE,
CWnd* pParentWnd = NULL,
CCreateContext* pContext = NULL);
Parametry
nIDResource
ID sdílených prostředků přidružených k oknem rámce.
dwDefaultStyle
Styl rámečku.
FWS_ADDTOTITLE Pokud chcete, aby záhlaví automaticky zobrazoval název dokumentu reprezentovaný v okně, zadejte styl.
pParentWnd
Ukazatel na nadřazený rámec.
pContext
Ukazatel na CCreateContext strukturu. Tento parametr může být NULL.
Poznámky
Vytvořte CFrameWnd objekt ve dvou krocích. Nejprve vyvoláte konstruktor, který vytvoří CFrameWnd objekt, a potom volání LoadFrame, který načte okno rámce Systému Windows a přidružené prostředky a připojí okno rámce k objektu CFrameWnd . Parametr nIDResource určuje nabídku, tabulku akcelerátoru, ikonu a prostředek řetězce názvu okna rámečku.
Create Místo toho, když chcete zadat všechny parametry vytvoření okna rámce, použijte členskou funkciLoadFrame.
Architektura volá LoadFrame , když vytvoří okno rámce pomocí objektu šablony dokumentu.
Architektura používá pContext argument k určení objektů, které mají být připojeny k oknem rámce, včetně všech obsažených objektů zobrazení. Argument můžete nastavit pContext při NULL volání LoadFrame.
CFrameWnd::m_bAutoMenuEnable
Pokud je tento datový člen povolený (což je výchozí nastavení), položky nabídky, které nemají ON_UPDATE_COMMAND_UI nebo ON_COMMAND obslužné rutiny, se automaticky deaktivují, když uživatel stáhne nabídku.
BOOL m_bAutoMenuEnable;
Poznámky
Položky nabídky, které mají obslužnou rutinu ON_COMMAND , ale žádná ON_UPDATE_COMMAND_UI obslužná rutina nebude automaticky povolena.
Když je tento datový člen nastavený, položky nabídky se automaticky povolí stejným způsobem jako tlačítka panelu nástrojů.
Poznámka:
m_bAutoMenuEnable nemá žádný vliv na položky nabídky nejvyšší úrovně.
Tento datový člen zjednodušuje implementaci volitelných příkazů na základě aktuálního výběru a snižuje potřebu zapisovat ON_UPDATE_COMMAND_UI obslužné rutiny pro povolení a zakázání položek nabídky.
Příklad
// 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
Voláním této členské funkce vyjednáte ohraničení v okně rámečku během aktivace rozhraní OLE inplace.
virtual BOOL NegotiateBorderSpace(
UINT nBorderCmd,
LPRECT lpRectBorder);
Parametry
nBorderCmd
Obsahuje jednu z následujících hodnot:enum BorderCmd
borderGet= 1borderRequest= 2borderSet= 3
lpRectBorder
Ukazatel na RECT strukturu nebo CRect objekt, který určuje souřadnice ohraničení.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Tato členová funkce je CFrameWnd implementace vyjednávání o hraničním prostoru OLE.
CFrameWnd::OnBarCheck
Volá se při každém provedení akce na zadaném řídicím panelu.
afx_msg BOOL OnBarCheck(UINT nID);
Parametry
nID
ID zobrazeného řídicího panelu.
Návratová hodnota
Nenulové, pokud existoval řídicí panel; jinak 0.
CFrameWnd::OnContextHelp
Zpracovává nápovědu SHIFT+F1 pro místní položky.
afx_msg void OnContextHelp();
Poznámky
Pokud chcete povolit nápovědu citlivou na kontext, musíte přidat
ON_COMMAND(ID_CONTEXT_HELP, &CMainFrame::OnContextHelp)
příkazem k CFrameWnd mapě zpráv třídy a také přidejte položku akcelerátor-tabulka, obvykle SHIFT+F1, aby bylo možné tuto členovou funkci povolit.
Pokud je vaše aplikace kontejner OLE, OnContextHelp umístí všechny místní položky obsažené v rámci objektu okna rámečku do režimu nápovědy. Kurzor se změní na šipku a otazník a uživatel pak může ukazatel myši přesunout a stisknutím levého tlačítka myši vybrat dialogové okno, okno, nabídku nebo příkazové tlačítko. Tato členová funkce volá funkci WinHelp Windows s kontextem nápovědy objektu pod kurzorem.
CFrameWnd::OnCreateClient
Volal rámec během provádění .OnCreate
virtual BOOL OnCreateClient(
LPCREATESTRUCT lpcs,
CCreateContext* pContext);
Parametry
lpcs
Ukazatel na strukturu Windows CREATESTRUCT .
pContext
Ukazatel na CCreateContext strukturu.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Tuto funkci nikdy nevolejte.
Výchozí implementace této funkce vytvoří CView objekt z informací uvedených v pContext, pokud je to možné.
Tuto funkci přepište tak, aby přepsaly hodnoty předané v objektu CCreateContext nebo aby se změnil způsob vytvoření ovládacích prvků v hlavní klientské oblasti okna rámečku. Členy CCreateContext , které můžete přepsat, jsou popsány ve CCreateContext třídě.
Poznámka:
Nenahrazovat hodnoty předané ve struktuře CREATESTRUCT . Jsou určené pouze pro informační použití. Pokud chcete přepsat počáteční obdélník okna, například přepsat člen funkce CWndPreCreateWindow.
CFrameWnd::OnHideMenuBar
Tato funkce se volá, když se systém chystá skrýt řádek nabídek v aktuální aplikaci MFC.
virtual void OnHideMenuBar();
Poznámky
Tato obslužná rutina události umožňuje aplikaci provádět vlastní akce, když se systém chystá skrýt nabídku. Nemůžete zabránit skrytí nabídky, ale můžete například volat jiné metody pro načtení stylu nebo stavu nabídky.
CFrameWnd::OnSetPreviewMode
Voláním této členské funkce nastavíte okno hlavního rámce aplikace do režimu náhledu tisku a z režimu náhledu.
virtual void OnSetPreviewMode(
BOOL bPreview,
CPrintPreviewState* pState);
Parametry
bPreview
Určuje, jestli se má aplikace umístit do režimu náhledu tisku. Pokud chcete režim náhledu zrušit, TRUE nastavte ho na FALSE místo v náhledu.
pState
Ukazatel na CPrintPreviewState strukturu.
Poznámky
Výchozí implementace zakáže všechny standardní panely nástrojů a skryje hlavní nabídku a hlavní okno klienta. Tím se okna s rámečkem MDI změní na dočasná okna s rámečkem SDI.
Přepsat tuto členovou funkci tak, aby při tisku přizpůsobil skrytí a zobrazení řídicích pruhů a dalších částí oken rámečku. Volání implementace základní třídy z přepsáné verze.
CFrameWnd::OnShowMenuBar
Tato funkce se volá, když se systém chystá zobrazit řádek nabídek v aktuální aplikaci MFC.
virtual void OnShowMenuBar();
Poznámky
Tato obslužná rutina události umožňuje aplikaci provádět vlastní akce při zobrazení nabídky. Zobrazení nabídky nelze zabránit, ale můžete například volat jiné metody pro načtení stylu nebo stavu nabídky.
CFrameWnd::OnUpdateControlBarMenu
Volá se rozhraním při aktualizaci přidružené nabídky.
afx_msg void OnUpdateControlBarMenu(CCmdUI* pCmdUI);
Parametry
pCmdUI
Ukazatel na CCmdUI objekt představující nabídku, která vygenerovala příkaz update. Obslužná rutina aktualizace volá Enable členské funkce objektu CCmdUI prostřednictvím pCmdUI aktualizace uživatelského rozhraní.
CFrameWnd::RecalcLayout
Volá se podle architektury, když jsou standardní řídicí pruhy zapnuté nebo vypnuté nebo když je okno rámečku změněno.
virtual void RecalcLayout(BOOL bNotify = TRUE);
Parametry
bNotify
Určuje, zda aktivní místní položka pro okno rámečku obdrží oznámení o změně rozložení. Je-li TRUEpoložka oznámena; jinak FALSE.
Poznámky
Výchozí implementace této členské funkce volá CWnd členskou funkci RepositionBars , která přemísťuje všechny řídicí pruhy v rámci i v hlavním okně klienta (obvykle a CView nebo MDICLIENT).
Tuto členovou funkci přepište, aby se po změně rozložení okna rámečku řídil vzhled a chování řídicích pruhů. Můžete ho například volat, když zapnete nebo vypnete ovládací panely nebo přidáte další ovládací panel.
CFrameWnd::rectDefault
Tuto statickou CRect funkci předejte jako parametr při vytváření okna, aby systém Windows mohl zvolit počáteční velikost a umístění okna.
static AFX_DATA const CRect rectDefault;
CFrameWnd::SaveBarState
Voláním této funkce uložíte informace o jednotlivých ovládacích panelech vlastněných oknem rámečku.
void SaveBarState(LPCTSTR lpszProfileName) const;
Parametry
lpszProfileName
Název oddílu v inicializačním souboru nebo klíči v registru Windows, kde jsou uloženy informace o stavu.
Poznámky
Tyto informace lze číst ze souboru inicializace pomocí LoadBarState. Uložené informace zahrnují viditelnost, vodorovnou/svislou orientaci, stav ukotvení a umístění ovládacího panelu.
CFrameWnd::SetActivePreviewView
Určuje zadané zobrazení jako aktivní zobrazení pro verzi Rich Preview.
void SetActivePreviewView(CView* pViewNew);
Parametry
pViewNew
Ukazatel na zobrazení, které se má aktivovat.
Poznámky
CFrameWnd::SetActiveView
Voláním této členské funkce nastavíte aktivní zobrazení.
void SetActiveView(
CView* pViewNew,
BOOL bNotify = TRUE);
Parametry
pViewNew
Určuje ukazatel na CView objekt nebo NULL pro žádné aktivní zobrazení.
bNotify
Určuje, jestli má být zobrazení upozorněno na aktivaci.
TRUE Je-li OnActivateViewvolána pro nové zobrazení; pokud FALSE, není.
Poznámky
Architektura bude tuto funkci volat automaticky, protože uživatel změní fokus na zobrazení v okně rámce. Můžete explicitně volat SetActiveView , abyste změnili fokus na zadané zobrazení.
CFrameWnd::SetDockState
Voláním této členské funkce použijete informace o stavu uložené v objektu CDockState na ovládací panely okna rámečku.
void SetDockState(const CDockState& state);
Parametry
state
Použijte uložený stav na ovládací panely okna rámečku.
Poznámky
Pokud chcete obnovit předchozí stav řídicích pruhů, můžete uložený stav načíst pomocí CDockState::LoadStateSerializeovládacího panelu okna rámečku nebo ho použít SetDockState . Předchozí stav je uložen v objektu CDockState s GetDockState
CFrameWnd::SetMenuBarState
Nastaví stav zobrazení nabídky v aktuální aplikaci MFC na skrytou nebo zobrazenou.
virtual BOOL SetMenuBarState(DWORD nState);
Parametry
nState
[v] Určuje, zda se má nabídka zobrazit nebo skrýt. Parametr nState může mít následující hodnoty:
-
AFX_MBS_VISIBLE(0x01) – Zobrazí nabídku, pokud je skrytá, ale nemá žádný vliv, pokud je viditelná. -
AFX_MBS_HIDDEN(0x02) – Skryje nabídku, pokud je viditelná, ale nemá žádný vliv, pokud je skrytá.
Návratová hodnota
TRUEpokud tato metoda úspěšně změní stav nabídky; v opačném případě . FALSE
Poznámky
Pokud dojde k chybě za běhu, tato metoda provádí v režimu ladění a vyvolá výjimku odvozenou z CException třídy.
CFrameWnd::SetMenuBarVisibility
Nastaví výchozí chování nabídky v aktuální aplikaci MFC tak, aby byla skrytá nebo viditelná.
virtual void SetMenuBarVisibility(DWORD nStyle);
Parametry
nStyle
[v] Určuje, jestli je nabídka ve výchozím nastavení skrytá, nebo je viditelná a má fokus. Parametr nStyle může mít následující hodnoty:
AFX_MBV_KEEPVISIBLE(0x01) – Nabídka se zobrazuje vždy a ve výchozím nastavení fokus neobsahuje.AFX_MBV_DISPLAYONFOCUS(0x02) – nabídka je ve výchozím nastavení skrytá. Pokud je nabídka skrytá, stisknutím klávesy ALT zobrazte nabídku a dejte jí fokus. Pokud se nabídka zobrazí, stisknutím klávesy ALT nebo ESC nabídku skryjete.AFX_MBV_DISPLAYONFOCUS | AFX_MBV_DISPLAYONF10(0x06) – nabídka je ve výchozím nastavení skrytá. Pokud je nabídka skrytá, stisknutím klávesy F10 zobrazte nabídku a dejte jí fokus. Pokud se nabídka zobrazí, stisknutím klávesy F10 přepněte fokus na nabídku nebo ji vypněte. Nabídka se zobrazí, dokud nestisknete klávesu ALT nebo ESC a skryjete ji.
Poznámky
Pokud hodnota parametru nStyle není platná, tato metoda se uplatní v režimu ladění a vyvolá CInvalidArgException v režimu release. V případě jiných chyb modulu runtime tato metoda uplatňuje v režimu ladění a vyvolá výjimku odvozenou z CException třídy.
Tato metoda ovlivňuje stav nabídek v aplikacích napsaných pro Systém Windows Vista a novější.
CFrameWnd::SetMessageText
Voláním této funkce umístíte řetězec do stavového řádku s ID 0.
void SetMessageText(LPCTSTR lpszText);
void SetMessageText(UINT nID);
Parametry
lpszText
Odkazuje na řetězec, který se má umístit na stavový řádek.
nID
ID prostředku řetězce, který se má umístit na stavový řádek.
Poznámky
Obvykle se jedná o levé a nejdelší podokno stavového řádku.
CFrameWnd::SetProgressBarPosition
Nastaví aktuální pozici indikátoru průběhu Windows 7 zobrazeného na hlavním panelu.
void SetProgressBarPosition(int nProgressPos);
Parametry
nProgressPos
Určuje pozici, která se má nastavit. Musí být v rozsahu nastaveném parametrem SetProgressBarRange.
Poznámky
CFrameWnd::SetProgressBarRange
Nastaví rozsah indikátoru průběhu Windows 7 zobrazeného na hlavním panelu.
void SetProgressBarRange(
int nRangeMin,
int nRangeMax);
Parametry
nRangeMin
Minimální hodnota.
nRangeMax
Maximální hodnota.
Poznámky
CFrameWnd::SetProgressBarState
Nastaví typ a stav indikátoru průběhu zobrazeného na tlačítku hlavního panelu.
void SetProgressBarState(TBPFLAG tbpFlags);
Parametry
tbpFlags
Označí příznak, který řídí aktuální stav tlačítka průběhu. Zadejte pouze jeden z následujících příznaků, protože všechny stavy se vzájemně vylučují: TBPF_NOPROGRESS, TBPF_INDETERMINATE, TBPF_NORMAL, , TBPF_ERROR. TBPF_PAUSED
Poznámky
CFrameWnd::SetTaskbarOverlayIcon
Přetíženo. Použije překryv na tlačítko hlavního panelu, které označuje stav aplikace nebo upozorní uživatele.
BOOL SetTaskbarOverlayIcon(
UINT nIDResource,
LPCTSTR lpcszDescr);
BOOL SetTaskbarOverlayIcon(
HICON hIcon,
LPCTSTR lpcszDescr);
Parametry
nIDResource
Určuje ID prostředku ikony, které se má použít jako překryv. Podrobnosti najdete v popisu hIcon .
lpcszDescr
Ukazatel na řetězec, který poskytuje alternativní textovou verzi informací předávaných překrytím pro účely přístupnosti.
hIcon
Úchyt ikony, který se má použít jako překryv. Mělo by to být malá ikona, která měří 16 × 16 pixelů na 96 bodů na palec (dpi). Pokud se na tlačítko hlavního panelu už použije ikona překrytí, nahradí se stávající překrytí. Tato hodnota může být NULL.
NULL Způsob zpracování hodnoty závisí na tom, jestli tlačítko hlavního panelu představuje jedno okno nebo skupinu oken. Je zodpovědností volající aplikace, aby se uvolnila hIcon , když už ji nepotřebujete.
Návratová hodnota
TRUE v případě úspěchu; FALSE pokud je verze operačního systému menší než Windows 7 nebo pokud dojde k chybě při nastavování ikony.
Poznámky
CFrameWnd::SetTitle
Nastaví název objektu okna.
void SetTitle(LPCTSTR lpszTitle);
Parametry
lpszTitle
Ukazatel na řetězec znaků obsahující název objektu okna.
CFrameWnd::ShowControlBar
Voláním této členské funkce zobrazíte nebo skryjete ovládací panel.
void ShowControlBar(
CControlBar* pBar,
BOOL bShow,
BOOL bDelay);
Parametry
pBar
Ukazatel na ovládací panel, který se má zobrazit nebo skrýt.
bShow
Pokud TRUEurčuje, že se má zobrazit ovládací panel. Pokud FALSEurčuje, že ovládací panel má být skrytý.
bDelay
Pokud TRUE, zpoždění zobrazení řídicího panelu. Pokud FALSE, zobrazte ovládací panel okamžitě.
CFrameWnd::ShowOwnedWindows
Voláním této členské funkce zobrazíte všechna okna, která jsou potomky objektu CFrameWnd .
void ShowOwnedWindows(BOOL bShow);
Parametry
bShow
Určuje, jestli se mají zobrazovat nebo skrývat vlastněná okna.
Viz také
CWnd Třída
Graf hierarchie
CWnd Třída
CMDIFrameWnd Třída
CMDIChildWnd Třída
CView Třída
CDocTemplate Třída
CRuntimeClass Struktura