Partager via


La classe CFrameWnd

Fournit les fonctionnalités d'une fenêtre frame contextuelle ou superposée d'interface monodocument (SDI) Windows, ainsi que des membres permettant de gérer la fenêtre.

Syntaxe

class CFrameWnd : public CWnd

Membres

Constructeurs publics

Nom Description
CFrameWnd::CFrameWnd Construit un objet CFrameWnd.

Méthodes publiques

Nom Description
CFrameWnd::ActivateFrame Rend le cadre visible et disponible pour l’utilisateur.
CFrameWnd::BeginModalState Définit la fenêtre frame sur modale.
CFrameWnd::Create Appelez pour créer et initialiser la fenêtre frame Windows associée à l’objet CFrameWnd .
CFrameWnd::CreateView Crée une vue dans un cadre qui n’est pas dérivé de CView.
CFrameWnd::DockControlBar Ancre une barre de contrôle.
CFrameWnd::EnableDocking Permet à une barre de contrôle d’être ancrée.
CFrameWnd::EndModalState Termine l’état modal de la fenêtre frame. Active toutes les fenêtres désactivées par BeginModalState.
CFrameWnd::FloatControlBar Flotte une barre de contrôle.
CFrameWnd::GetActiveDocument Retourne l’objet actif CDocument .
CFrameWnd::GetActiveFrame Retourne l’objet actif CFrameWnd .
CFrameWnd::GetActiveView Retourne l’objet actif CView .
CFrameWnd::GetControlBar Récupère la barre de contrôle.
CFrameWnd::GetDockState Récupère l’état d’ancrage d’une fenêtre frame.
CFrameWnd::GetMenuBarState Récupère l’état d’affichage du menu dans l’application MFC actuelle.
CFrameWnd::GetMenuBarVisibility Indique si le comportement par défaut du menu dans l’application MFC actuelle est masqué ou visible.
CFrameWnd::GetMessageBar Retourne un pointeur vers la barre d’état appartenant à la fenêtre frame.
CFrameWnd::GetMessageString Récupère le message correspondant à un ID de commande.
CFrameWnd::GetTitle Récupère le titre de la barre de contrôle associée.
CFrameWnd::InitialUpdateFrame Provoque l’appel de la OnInitialUpdate fonction membre appartenant à toutes les vues de la fenêtre frame.
CFrameWnd::InModalState Retourne une valeur indiquant si une fenêtre frame est dans un état modal ou non.
CFrameWnd::IsTracking Détermine si la barre de fractionnement est en cours de déplacement.
CFrameWnd::LoadAccelTable Appelez pour charger une table d’accélérateurs.
CFrameWnd::LoadBarState Appelez les paramètres de la barre de contrôle pour restaurer.
CFrameWnd::LoadFrame Appelez pour créer dynamiquement une fenêtre frame à partir d’informations sur les ressources.
CFrameWnd::NegotiateBorderSpace Négocie l’espace de bordure dans la fenêtre frame.
CFrameWnd::OnBarCheck Appelée chaque fois qu’une action est effectuée sur la barre de contrôle spécifiée.
CFrameWnd::OnContextHelp Gère l’aide maj+F1 pour les éléments sur place.
CFrameWnd::OnSetPreviewMode Définit la fenêtre principale du cadre principal de l’application en mode aperçu avant impression.
CFrameWnd::OnUpdateControlBarMenu Appelé par l’infrastructure lorsque le menu associé est mis à jour.
CFrameWnd::RecalcLayout Repositionne les barres de contrôle de l’objet CFrameWnd .
CFrameWnd::SaveBarState Appelez pour enregistrer les paramètres de la barre de contrôle.
CFrameWnd::SetActivePreviewView Désigne l’affichage spécifié comme affichage actif pour l’aperçu enrichi.
CFrameWnd::SetActiveView Définit l’objet actif CView .
CFrameWnd::SetDockState Appelez pour ancrer la fenêtre frame dans la fenêtre principale.
CFrameWnd::SetMenuBarState Définit l’état d’affichage du menu dans l’application MFC actuelle sur masqué ou affiché.
CFrameWnd::SetMenuBarVisibility Définit le comportement par défaut du menu dans l’application MFC actuelle pour qu’il soit masqué ou visible.
CFrameWnd::SetMessageText Définit le texte d’une barre d’état standard.
CFrameWnd::SetProgressBarPosition Définit la position actuelle de la barre de progression de Windows 7 affichée dans la barre des tâches.
CFrameWnd::SetProgressBarRange Définit la plage de la barre de progression Windows 7 affichée dans la barre des tâches.
CFrameWnd::SetProgressBarState Définit le type et l’état de l’indicateur de progression affichés sur un bouton de barre des tâches.
CFrameWnd::SetTaskbarOverlayIcon Surcharge. Applique une superposition à un bouton de barre des tâches pour indiquer l’état de l’application ou une notification à l’utilisateur.
CFrameWnd::SetTitle Définit le titre de la barre de contrôle associée.
CFrameWnd::ShowControlBar Appelez pour afficher la barre de contrôle.
CFrameWnd::ShowOwnedWindows Affiche toutes les fenêtres descendants de l’objet CFrameWnd .

Méthodes protégées

Nom Description
CFrameWnd::OnCreateClient Crée une fenêtre cliente pour le cadre.
CFrameWnd::OnHideMenuBar Appelé avant que le menu de l’application MFC actuelle soit masqué.
CFrameWnd::OnShowMenuBar Appelé avant l’affichage du menu dans l’application MFC actuelle.

Membres de données publics

Nom Description
CFrameWnd::m_bAutoMenuEnable Les contrôles activent et désactivent automatiquement les fonctionnalités des éléments de menu.
CFrameWnd::rectDefault Transmettez cette statique CRect en tant que paramètre lors de la création d’un CFrameWnd objet pour permettre à Windows de choisir la taille et la position initiales de la fenêtre.

Notes

Pour créer une fenêtre frame utile pour votre application, dérivez une classe de CFrameWnd. Ajoutez des variables membres à la classe dérivée pour stocker des données spécifiques à votre application. Implémentez des fonctions membres de gestionnaire de messages et une table des messages dans la classe dérivée pour préciser ce qu'il advient quand des messages sont dirigés vers la fenêtre.

Il existe trois façons de construire une fenêtre frame :

  • Construisez-le directement à l’aide Createde .

  • Construisez-le directement à l’aide LoadFramede .

  • Construisez-le indirectement à l’aide d’un modèle de document.

Avant d’appeler l’un Create ou l’autre LoadFrame, vous devez construire l’objet frame-window sur le tas à l’aide de l’opérateur C++ new . Avant d’appeler Create, vous pouvez également inscrire une classe de fenêtre avec la AfxRegisterWndClass fonction globale pour définir l’icône et les styles de classe pour le cadre.

Utilisez la Create fonction membre pour passer les paramètres de création du frame en tant qu’arguments immédiats.

LoadFramenécessite moins d’arguments que Create, et récupère à la place la plupart de ses valeurs par défaut à partir de ressources, y compris la légende, l’icône, la table d’accélérateurs et le menu de l’image. Pour être accessible par LoadFrame, toutes ces ressources doivent avoir le même ID de ressource (par exemple, IDR_MAINFRAME).

Lorsqu’un CFrameWnd objet contient des vues et des documents, ils sont créés indirectement par l’infrastructure plutôt que directement par le programmeur. L’objet CDocTemplate orchestre la création du cadre, la création des vues contenantes et la connexion des vues au document approprié. Les paramètres du CDocTemplate constructeur spécifient les CRuntimeClass trois classes impliquées (document, frame et vue). Un CRuntimeClass objet est utilisé par l’infrastructure pour créer dynamiquement des trames lorsqu’ils sont spécifiés par l’utilisateur (par exemple, à l’aide de la commande File New ou de la commande MDI (Multiple Document Interface) Window New).

Une classe frame-window dérivée de CFrameWnd doit être déclarée avec DECLARE_DYNCREATE pour que le mécanisme ci-dessus RUNTIME_CLASS fonctionne correctement.

Il CFrameWnd contient des implémentations par défaut pour effectuer les fonctions suivantes d’une fenêtre principale dans une application classique pour Windows :

  • Une CFrameWnd fenêtre frame effectue le suivi d’une vue actuellement active indépendante de la fenêtre active Windows ou du focus d’entrée actuel. Lorsque le frame est réactivé, la vue active est avertie en appelant CView::OnActivateView.

  • Les messages de commande et de nombreux messages de notification frame courants, y compris ceux gérés par le OnSetFocus, OnHScrollet OnVScroll les fonctions de CWnd, sont délégués par une CFrameWnd fenêtre frame à l’affichage actif.

  • L’affichage actif (ou actuellement la fenêtre image enfant MDI active dans le cas d’un cadre MDI) peut déterminer la légende de la fenêtre frame. Cette fonctionnalité peut être désactivée en désactivant le FWS_ADDTOTITLE bit de style de la fenêtre frame.

  • Une CFrameWnd fenêtre frame gère le positionnement des barres de contrôle, des vues et d’autres fenêtres enfants à l’intérieur de la zone cliente de la fenêtre frame. Une fenêtre frame effectue également la mise à jour du temps d’inactivité de la barre d’outils et d’autres boutons de barre de contrôle. Une CFrameWnd fenêtre frame comporte également des implémentations par défaut de commandes pour activer et désactiver la barre d’outils et la barre d’état.

  • Une CFrameWnd fenêtre frame gère la barre de menus principale. Lorsqu’un menu contextuel s’affiche, la fenêtre frame utilise le UPDATE_COMMAND_UI mécanisme pour déterminer quels éléments de menu doivent être activés, désactivés ou case activée ed. Lorsque l’utilisateur sélectionne un élément de menu, la fenêtre frame met à jour la barre d’état avec la chaîne de message de cette commande.

  • Une CFrameWnd fenêtre frame a une table d’accélérateurs facultative qui traduit automatiquement les accélérateurs clavier.

  • Une CFrameWnd fenêtre frame a un jeu d’ID d’aide facultatif avec LoadFrame lequel il est utilisé pour l’aide contextuelle. Une fenêtre frame est l’orchestrateur principal d’états semi-modaux tels que l’aide contextuelle (MAJ+F1) et les modes d’aperçu avant impression.

  • Une CFrameWnd fenêtre frame ouvre un fichier déplacé à partir du Gestionnaire de fichiers et est supprimé dans la fenêtre frame. Si une extension de fichier est inscrite et associée à l’application, la fenêtre frame répond à la demande d’ouverture d’échange de données dynamique (DDE) qui se produit lorsque l’utilisateur ouvre un fichier de données dans le Gestionnaire de fichiers ou lorsque la ShellExecute fonction Windows est appelée.

  • Si la fenêtre frame est la fenêtre d’application principale (autrement dit, CWinThread::m_pMainWnd), lorsque l’utilisateur ferme l’application, la fenêtre frame invite l’utilisateur à enregistrer les documents modifiés (pour OnClose et OnQueryEndSession).

  • Si la fenêtre frame est la fenêtre d’application principale, la fenêtre frame est le contexte de l’exécution de WinHelp. La fermeture de la fenêtre frame s’arrête WINHELP.EXE si elle a été lancée pour obtenir de l’aide pour cette application.

N’utilisez pas l’opérateur C++ delete pour détruire une fenêtre frame. Utilisez CWnd::DestroyWindow à la place. L’implémentation CFrameWnd de PostNcDestroy supprimera l’objet C++ lorsque la fenêtre est détruite. Lorsque l’utilisateur ferme la fenêtre frame, le gestionnaire par défaut OnClose appelle DestroyWindow.

Pour plus d’informations sur CFrameWnd, consultez Frame Windows.

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CFrameWnd

Spécifications

En-têteafxwin.h:

CFrameWnd::ActivateFrame

Appelez cette fonction membre pour activer et restaurer la fenêtre frame afin qu’elle soit visible et disponible pour l’utilisateur.

virtual void ActivateFrame(int nCmdShow = -1);

Paramètres

nCmdShow
Spécifie le paramètre à passer à CWnd::ShowWindow. Par défaut, le cadre est affiché et correctement restauré.

Notes

Cette fonction membre est généralement appelée après un événement d’interface non utilisateur tel qu’un DDE, OLE ou un autre événement qui peut afficher la fenêtre frame ou son contenu à l’utilisateur.

L’implémentation par défaut active l’image et l’amène en haut de l’ordre Z et, si nécessaire, effectue les mêmes étapes pour la fenêtre principale de l’application.

Remplacez cette fonction membre pour modifier la façon dont une trame est activée. Par exemple, vous pouvez forcer l’agrandissement des fenêtres enfants MDI. Ajoutez les fonctionnalités appropriées, puis appelez la version de classe de base avec un élément explicite nCmdShow.

Exemple

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

   CMDIChildWnd::ActivateFrame(nCmdShow);
}

CFrameWnd::BeginModalState

Appelez cette fonction membre pour rendre modale une fenêtre frame.

virtual void BeginModalState();

CFrameWnd::CFrameWnd

Construit un CFrameWnd objet, mais ne crée pas la fenêtre de cadre visible.

CFrameWnd();

Notes

Appelez Create pour créer la fenêtre visible.

CFrameWnd::Create

Appelez pour créer et initialiser la fenêtre frame Windows associée à l’objet 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);

Paramètres

lpszClassName
Pointe vers une chaîne de caractères terminée par null qui nomme la classe Windows. Le nom de classe peut être n’importe quel nom inscrit auprès de la AfxRegisterWndClass fonction globale ou de la RegisterClass fonction Windows. Si NULL, utilise les attributs par défaut CFrameWnd prédéfinis.

lpszWindowName
Pointe vers une chaîne de caractères terminée par null qui représente le nom de la fenêtre. Utilisé comme texte pour la barre de titre.

dwStyle
Spécifie les attributs de style de fenêtre. Incluez le FWS_ADDTOTITLE style si vous souhaitez que la barre de titre affiche automatiquement le nom du document représenté dans la fenêtre.

rect
Spécifie la taille et la position de la fenêtre. La rectDefault valeur permet à Windows de spécifier la taille et la position de la nouvelle fenêtre.

pParentWnd
Spécifie la fenêtre parente de cette fenêtre frame. Ce paramètre doit être NULL destiné aux fenêtres frame de niveau supérieur.

lpszMenuName
Identifie le nom de la ressource de menu à utiliser avec la fenêtre. Utilisez MAKEINTRESOURCE si le menu a un ID entier au lieu d’une chaîne. Ce paramètre peut être NULL.

dwExStyle
Spécifie les attributs de style étendu de la fenêtre.

pContext
Spécifie un pointeur vers une CCreateContext structure. Ce paramètre peut être NULL.

Valeur de retour

Différent de zéro si l’initialisation réussit ; sinon 0.

Notes

Construisez un CFrameWnd objet en deux étapes. Tout d’abord, appelez le constructeur, qui construit l’objet CFrameWnd , puis appelez Create, qui crée la fenêtre frame Windows et l’attache à l’objet CFrameWnd . Create initialise le nom de la classe et le nom de la fenêtre et inscrit les valeurs par défaut pour son style, son parent et son menu associé.

Utilisez LoadFrame plutôt que Create de charger la fenêtre frame à partir d’une ressource au lieu de spécifier ses arguments.

CFrameWnd::CreateView

Appelez CreateView pour créer une vue dans un cadre.

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

Paramètres

pContext
Spécifie le type d’affichage et de document.

nID
Numéro d’ID d’une vue.

Valeur de retour

Pointeur vers un CWnd objet en cas de réussite ; sinon NULL.

Notes

Utilisez cette fonction membre pour créer des « vues » qui ne sont pas CViewdérivées dans une trame. Après l’appel CreateView, vous devez définir manuellement l’affichage sur actif et le définir comme visible ; ces tâches ne sont pas effectuées automatiquement par CreateView.

CFrameWnd::DockControlBar

Provoque l’ancrage d’une barre de contrôle dans la fenêtre frame.

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

Paramètres

pBar
Pointe vers la barre de contrôle à ancrer.

nDockBarID
Détermine les côtés de la fenêtre frame à prendre en compte pour l’ancrage. Il peut s’agir de 0, ou d’un ou plusieurs des éléments suivants :

  • AFX_IDW_DOCKBAR_TOP Ancrer le côté supérieur de la fenêtre frame.

  • AFX_IDW_DOCKBAR_BOTTOM Ancrer sur le côté inférieur de la fenêtre frame.

  • AFX_IDW_DOCKBAR_LEFT Ancrer sur le côté gauche de la fenêtre frame.

  • AFX_IDW_DOCKBAR_RIGHT Ancrer sur le côté droit de la fenêtre frame.

Si 0, la barre de contrôle peut être ancrée sur n’importe quel côté activé pour l’ancrage dans la fenêtre frame de destination.

lpRect
Détermine, dans les coordonnées de l’écran, où la barre de contrôle sera ancrée dans la zone non cliente de la fenêtre frame de destination.

Notes

La barre de contrôle est ancrée sur l’un des côtés de la fenêtre frame spécifiée dans les appels à la fois CControlBar::EnableDocking et CFrameWnd::EnableDocking. Le côté choisi est déterminé par nDockBarID.

CFrameWnd::EnableDocking

Appelez cette fonction pour activer les barres de contrôle ancres dans une fenêtre frame.

void EnableDocking(DWORD dwDockStyle);

Paramètres

dwDockStyle
Spécifie les côtés de la fenêtre frame qui peuvent servir de sites d’ancrage pour les barres de contrôle. Il peut s’agir d’un ou plusieurs des éléments suivants :

  • CBRS_ALIGN_TOP Autorise l’ancrage en haut de la zone cliente.

  • CBRS_ALIGN_BOTTOM Autorise l’ancrage en bas de la zone cliente.

  • CBRS_ALIGN_LEFT Autorise l’ancrage sur le côté gauche de la zone cliente.

  • CBRS_ALIGN_RIGHT Autorise l’ancrage sur le côté droit de la zone cliente.

  • CBRS_ALIGN_ANY Autorise l’ancrage sur n’importe quel côté de la zone cliente.

Notes

Par défaut, les barres de contrôle sont ancrées sur un côté de la fenêtre frame dans l’ordre suivant : haut, bas, gauche, droite.

Exemple

Consultez l’exemple pour CToolBar::Create.

CFrameWnd::EndModalState

Appelez cette fonction membre pour changer une fenêtre frame modale en fenêtre frame non modale.

virtual void EndModalState();

Notes

EndModalState active toutes les fenêtres désactivées par BeginModalState.

CFrameWnd::FloatControlBar

Appelez cette fonction pour empêcher l’ancrage d’une barre de contrôle dans la fenêtre frame.

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

Paramètres

pBar
Pointe vers la barre de contrôle à flotter.

point
Emplacement, dans les coordonnées de l’écran, où le coin supérieur gauche de la barre de contrôle sera placé.

dwStyle
Spécifie s’il faut aligner la barre de contrôle horizontalement ou verticalement dans sa nouvelle fenêtre frame. Il peut s’agir de l’une des options suivantes :

  • CBRS_ALIGN_TOP Oriente verticalement la barre de contrôle.

  • CBRS_ALIGN_BOTTOM Oriente verticalement la barre de contrôle.

  • CBRS_ALIGN_LEFT Oriente la barre de contrôle horizontalement.

  • CBRS_ALIGN_RIGHT Oriente la barre de contrôle horizontalement.

Si les styles sont passés en spécifiant à la fois l’orientation horizontale et verticale, la barre d’outils est orientée horizontalement.

Notes

En règle générale, cela se produit au démarrage de l’application lorsque le programme restaure les paramètres de l’exécution précédente.

Cette fonction est appelée par l’infrastructure lorsque l’utilisateur provoque une opération de déplacement en libérant le bouton gauche de la souris tout en faisant glisser la barre de contrôle sur un emplacement qui n’est pas disponible pour l’ancrage.

CFrameWnd::GetActiveDocument

Appelez cette fonction membre pour obtenir un pointeur vers l’affichage CDocument actif actuel attaché.

virtual CDocument* GetActiveDocument();

Valeur de retour

Pointeur vers le pointeur actuel CDocument. S’il n’existe aucun document actif, retourne NULL.

CFrameWnd::GetActiveFrame

Appelez cette fonction membre pour obtenir un pointeur vers la fenêtre enfant MDI (Multiple Document Interface) active d’une fenêtre frame MDI.

virtual CFrameWnd* GetActiveFrame();

Valeur de retour

Pointeur vers la fenêtre enfant MDI active. Si l’application est une application SDI ou si la fenêtre frame MDI n’a pas de document actif, le pointeur implicite this est retourné.

Notes

S’il n’y a pas d’enfant MDI actif ou si l’application est une interface de document unique (SDI), le pointeur implicite this est retourné.

CFrameWnd::GetActiveView

Appelez cette fonction membre pour obtenir un pointeur vers l’affichage actif (le cas échéant) attaché à une fenêtre frame ( CFrameWnd).

CView* GetActiveView() const;

Valeur de retour

Pointeur vers le pointeur actuel CView. S’il n’y a pas d’affichage actuel, retourne NULL.

Notes

Cette fonction retourne lorsqu’elle est NULL appelée pour une fenêtre de cadre principal MDI ( CMDIFrameWnd). Dans une application MDI, la fenêtre de cadre principal MDI n’a pas d’affichage associée. Au lieu de cela, chaque fenêtre enfant individuelle ( CMDIChildWnd) a une ou plusieurs vues associées. L’affichage actif dans une application MDI peut être obtenu en recherchant d’abord la fenêtre enfant MDI active, puis en recherchant l’affichage actif pour cette fenêtre enfant. La fenêtre enfant MDI active est disponible en appelant la fonction MDIGetActive ou GetActiveFrame comme illustré dans les éléments suivants :

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

Appelez GetControlBar pour accéder à la barre de contrôle associée à l’ID.

CControlBar* GetControlBar(UINT nID);

Paramètres

nID
Numéro d’ID d’une barre de contrôle.

Valeur de retour

Pointeur vers la barre de contrôle associée à l’ID.

Notes

Le nID paramètre fait référence à l’identificateur unique passé à la Create méthode de la barre de contrôle. Pour plus d’informations sur les barres de contrôle, reportez-vous à la rubrique intitulée Barres de contrôle.

GetControlBar retourne la barre de contrôle même si elle est flottante et n’est donc pas actuellement une fenêtre enfant du cadre.

CFrameWnd::GetDockState

Appelez cette fonction membre pour stocker des informations d’état sur les barres de contrôle de la fenêtre frame dans un CDockState objet.

void GetDockState(CDockState& state) const;

Paramètres

state
Contient l’état actuel des barres de contrôle de la fenêtre frame lors du retour.

Notes

Vous pouvez ensuite écrire le contenu du CDockState stockage à l’aide CDockState::SaveState ou Serialize. Si vous souhaitez ultérieurement restaurer les barres de contrôle à un état précédent, chargez l’état avec CDockState::LoadState ou Serializeappelez-le SetDockState pour appliquer l’état précédent aux barres de contrôle de la fenêtre frame.

CFrameWnd::GetMenuBarState

Récupère l’état d’affichage du menu dans l’application MFC actuelle.

virtual DWORD GetMenuBarState();

Valeur de retour

La valeur de retour peut avoir les valeurs suivantes :

  • AFX_MBS_VISIBLE (0x01) : le menu est visible.

  • AFX_MBS_HIDDEN (0x02) : le menu est masqué.

Notes

Si une erreur d’exécution se produit, cette méthode s’affirme en mode Débogage et déclenche une exception dérivée de la CException classe.

CFrameWnd::GetMenuBarVisibility

Indique si l’état par défaut du menu dans l’application MFC actuelle est masqué ou visible.

virtual DWORD CFrameWnd::GetMenuBarVisibility();

Valeur de retour

Cette méthode retourne l’une des valeurs suivantes :

  • AFX_MBV_KEEPVISIBLE (0x01) : le menu s’affiche à tout moment et, par défaut, n’a pas le focus.

  • AFX_MBV_DISPLAYONFOCUS (0x02) : le menu est masqué par défaut. Si le menu est masqué, appuyez sur la touche Alt pour afficher le menu et lui donner le focus. Si le menu est affiché, appuyez sur la touche Alt ou Échap pour la masquer.

  • AFX_MBV_ DISPLAYONFOCUS | AFX_MBV_DISPLAYONF10 (0x06) : le menu est masqué par défaut. Si le menu est masqué, appuyez sur la touche F10 pour afficher le menu et lui donner le focus. Si le menu s’affiche, appuyez sur la touche F10 pour activer ou désactiver le focus sur le menu. Le menu s’affiche jusqu’à ce que vous appuyiez sur la touche Alt ou Échap pour la masquer.

Notes

Si une erreur d’exécution se produit, cette méthode s’affirme en mode Débogage et déclenche une exception dérivée de la CException classe.

CFrameWnd::GetMessageBar

Appelez cette fonction membre pour obtenir un pointeur vers la barre d’état.

virtual CWnd* GetMessageBar();

Valeur de retour

Pointeur vers la fenêtre de barre d’état.

CFrameWnd::GetMessageString

Remplacez cette fonction pour fournir des chaînes personnalisées pour les ID de commande.

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

Paramètres

nID
ID de ressource du message souhaité.

rMessage
CString objet dans lequel placer le message.

Notes

L’implémentation par défaut charge simplement la chaîne spécifiée à nID partir du fichier de ressources. Cette fonction est appelée par l’infrastructure lorsque la chaîne de message dans la barre d’état doit être mise à jour.

CFrameWnd::GetTitle

Récupère le titre de l’objet de fenêtre.

CString GetTitle() const;

Valeur de retour

Objet CString contenant le titre actuel de l’objet fenêtre.

CFrameWnd::InitialUpdateFrame

Appel IntitialUpdateFrame après la création d’une trame avec Create.

void InitialUpdateFrame(
    CDocument* pDoc,
    BOOL bMakeVisible);

Paramètres

pDoc
Pointe vers le document auquel la fenêtre frame est associée. Peut être NULL.

bMakeVisible
Si TRUE, indique que le cadre doit devenir visible et actif. Si FALSE, aucun descendants n’est rendu visible.

Notes

Ainsi, toutes les vues de cette fenêtre frame reçoivent leurs OnInitialUpdate appels.

En outre, s’il n’y avait pas encore d’affichage actif, l’affichage principal de la fenêtre frame est activé. La vue principale est une vue avec un ID enfant de AFX_IDW_PANE_FIRST. Enfin, la fenêtre de cadre est rendue visible si bMakeVisible elle n’est pas nulle. Si bMakeVisible la valeur est 0, le focus actuel et l’état visible de la fenêtre frame restent inchangés. Il n’est pas nécessaire d’appeler cette fonction lors de l’utilisation de l’implémentation du framework de File New and File Open.

CFrameWnd::InModalState

Appelez cette fonction membre pour case activée si une fenêtre frame est modale ou sans mode.

BOOL InModalState() const;

Valeur de retour

Différent de zéro si oui ; sinon 0.

CFrameWnd::IsTracking

Appelez cette fonction membre pour déterminer si la barre de fractionnement dans la fenêtre est en cours de déplacement.

BOOL IsTracking() const;

Valeur de retour

Différent de zéro si une opération de fractionnement est en cours ; sinon 0.

CFrameWnd::LoadAccelTable

Appelez pour charger la table d’accélérateurs spécifiée.

BOOL LoadAccelTable(LPCTSTR lpszResourceName);

Paramètres

lpszResourceName
Identifie le nom de la ressource accélérateur. Utilisez MAKEINTRESOURCE cette option si la ressource est identifiée avec un ID entier.

Valeur de retour

Différent de zéro si la table de l’accélérateur a été correctement chargée ; sinon 0.

Notes

Une seule table peut être chargée à la fois.

Les tables accélérateurs chargées à partir de ressources sont libérées automatiquement lorsque l’application se termine.

Si vous appelez LoadFrame pour créer la fenêtre frame, l’infrastructure charge une table d’accélérateurs avec les ressources de menu et d’icône, et un appel ultérieur à cette fonction membre n’est pas nécessaire.

CFrameWnd::LoadBarState

Appelez cette fonction pour restaurer les paramètres de chaque barre de contrôle appartenant à la fenêtre frame.

void LoadBarState(LPCTSTR lpszProfileName);

Paramètres

lpszProfileName
Nom d’une section dans le fichier d’initialisation (INI) ou une clé dans le Registre Windows où les informations d’état sont stockées.

Notes

Les informations restaurées incluent la visibilité, l’orientation horizontale/verticale, l’état d’ancrage et la position de la barre de contrôle.

Les paramètres que vous souhaitez restaurer doivent être écrits dans le Registre avant d’appeler LoadBarState. Écrivez les informations dans le Registre en appelant CWinApp::SetRegistryKey. Écrivez les informations dans le fichier INI en appelant SaveBarState.

CFrameWnd::LoadFrame

Appelez pour créer dynamiquement une fenêtre frame à partir d’informations sur les ressources.

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

Paramètres

nIDResource
ID des ressources partagées associées à la fenêtre frame.

dwDefaultStyle
Style du cadre. Incluez le FWS_ADDTOTITLE style si vous souhaitez que la barre de titre affiche automatiquement le nom du document représenté dans la fenêtre.

pParentWnd
Pointeur vers le parent du cadre.

pContext
Pointeur vers une CCreateContext structure. Ce paramètre peut être NULL.

Notes

Construisez un CFrameWnd objet en deux étapes. Tout d’abord, appelez le constructeur, qui construit l’objet CFrameWnd , puis appelez LoadFrame, qui charge la fenêtre frame Windows et les ressources associées et attache la fenêtre frame à l’objet CFrameWnd . Le nIDResource paramètre spécifie le menu, la table accélérateur, l’icône et la ressource de chaîne du titre de la fenêtre frame.

Utilisez la Create fonction membre plutôt que LoadFrame lorsque vous souhaitez spécifier tous les paramètres de création de la fenêtre frame.

L’infrastructure appelle LoadFrame lorsqu’elle crée une fenêtre frame à l’aide d’un objet de modèle de document.

L’infrastructure utilise l’argument pContext pour spécifier les objets à connecter à la fenêtre frame, y compris les objets d’affichage contenu. Vous pouvez définir l’argument pContextNULL sur quand vous appelez LoadFrame.

CFrameWnd::m_bAutoMenuEnable

Lorsque ce membre de données est activé (qui est la valeur par défaut), les éléments de menu qui n’ont ON_UPDATE_COMMAND_UI pas ou ON_COMMAND les gestionnaires sont automatiquement désactivés lorsque l’utilisateur extrait un menu.

BOOL m_bAutoMenuEnable;

Notes

Les éléments de menu qui ont un ON_COMMAND gestionnaire, mais aucun gestionnaire n’est ON_UPDATE_COMMAND_UI activé automatiquement.

Lorsque ce membre de données est défini, les éléments de menu sont automatiquement activés de la même façon que les boutons de barre d’outils sont activés.

Remarque

m_bAutoMenuEnable n’a aucun effet sur les éléments de menu de niveau supérieur.

Ce membre de données simplifie l’implémentation de commandes facultatives en fonction de la sélection actuelle et réduit la nécessité d’écrire ON_UPDATE_COMMAND_UI des gestionnaires pour activer et désactiver les éléments de menu.

Exemple

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

Appelez cette fonction membre pour négocier l’espace de bordure dans une fenêtre frame pendant l’activation de l’emplacement OLE.

virtual BOOL NegotiateBorderSpace(
    UINT nBorderCmd,
    LPRECT lpRectBorder);

Paramètres

nBorderCmd
Contient l’une des valeurs suivantes à partir des enum BorderCmdéléments suivants :

  • borderGet = 1

  • borderRequest = 2

  • borderSet = 3

lpRectBorder
Pointeur vers une RECT structure ou un CRect objet qui spécifie les coordonnées de la bordure.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Cette fonction membre est l’implémentation de la CFrameWnd négociation d’espace frontière OLE.

CFrameWnd::OnBarCheck

Appelée chaque fois qu’une action est effectuée sur la barre de contrôle spécifiée.

afx_msg BOOL OnBarCheck(UINT nID);

Paramètres

nID
ID de la barre de contrôle affichée.

Valeur de retour

Différent de zéro si la barre de contrôle existait ; sinon 0.

CFrameWnd::OnContextHelp

Gère l’aide maj+F1 pour les éléments sur place.

afx_msg void OnContextHelp();

Notes

Pour activer l’aide contextuelle, vous devez ajouter une

ON_COMMAND(ID_CONTEXT_HELP, &CMainFrame::OnContextHelp)

instruction à votre CFrameWnd mappage de messages de classe et ajoutez également une entrée de table accélérateur, généralement MAJ+F1, pour activer cette fonction membre.

Si votre application est un conteneur OLE, OnContextHelp place tous les éléments sur place contenus dans l’objet de fenêtre frame en mode Aide. Le curseur passe à une flèche et à un point d’interrogation, et l’utilisateur peut ensuite déplacer le pointeur de la souris et appuyer sur le bouton gauche de la souris pour sélectionner une boîte de dialogue, une fenêtre, un menu ou un bouton de commande. Cette fonction membre appelle la fonction WinHelp Windows avec le contexte d’aide de l’objet sous le curseur.

CFrameWnd::OnCreateClient

Appelé par l’infrastructure pendant l’exécution de OnCreate.

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

Paramètres

lpcs
Pointeur vers une structure Windows CREATESTRUCT .

pContext
Pointeur vers une CCreateContext structure.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

N’appelez jamais cette fonction.

L’implémentation par défaut de cette fonction crée un CView objet à partir des informations fournies dans pContext, si possible.

Remplacez cette fonction pour remplacer les valeurs passées dans l’objet CCreateContext ou pour modifier la façon dont les contrôles dans la zone cliente principale de la fenêtre frame sont créés. Les CCreateContext membres que vous pouvez remplacer sont décrits dans la CCreateContext classe.

Remarque

Ne remplacez pas les valeurs passées dans la CREATESTRUCT structure. Elles sont destinées uniquement à des fins d’information. Si vous souhaitez remplacer le rectangle de fenêtre initial, par exemple, remplacer la CWnd fonction PreCreateWindowmembre .

CFrameWnd::OnHideMenuBar

Cette fonction est appelée lorsque le système est sur le point de masquer la barre de menus dans l’application MFC actuelle.

virtual void OnHideMenuBar();

Notes

Ce gestionnaire d’événements permet à votre application d’effectuer des actions personnalisées lorsque le système est sur le point de masquer le menu. Vous ne pouvez pas empêcher le menu d’être masqué, mais vous pouvez, par exemple, appeler d’autres méthodes pour récupérer le style de menu ou l’état.

CFrameWnd::OnSetPreviewMode

Appelez cette fonction membre pour définir la fenêtre frame principale de l’application dans et en dehors du mode Aperçu avant impression.

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

Paramètres

bPreview
Spécifie s’il faut ou non placer l’application en mode aperçu avant impression. Définissez la valeur à TRUE placer en préversion avant impression pour FALSE annuler le mode aperçu.

pState
Pointeur vers une CPrintPreviewState structure.

Notes

L’implémentation par défaut désactive toutes les barres d’outils standard et masque le menu principal et la fenêtre cliente principale. Cela transforme les fenêtres de cadre MDI en fenêtres de cadre SDI temporaires.

Remplacez cette fonction membre pour personnaliser le masquage et l’affichage des barres de contrôle et d’autres parties de fenêtre frame pendant l’aperçu avant impression. Appelez l’implémentation de classe de base à partir de la version substituée.

CFrameWnd::OnShowMenuBar

Cette fonction est appelée lorsque le système est sur le point d’afficher la barre de menus dans l’application MFC actuelle.

virtual void OnShowMenuBar();

Notes

Ce gestionnaire d’événements permet à votre application d’effectuer des actions personnalisées lorsque le menu est sur le point d’être affiché. Vous ne pouvez pas empêcher l’affichage du menu, mais vous pouvez, par exemple, appeler d’autres méthodes pour récupérer le style de menu ou l’état.

CFrameWnd::OnUpdateControlBarMenu

Appelé par l’infrastructure lorsque le menu associé est mis à jour.

afx_msg void OnUpdateControlBarMenu(CCmdUI* pCmdUI);

Paramètres

pCmdUI
Pointeur vers un CCmdUI objet représentant le menu qui a généré la commande de mise à jour. Le gestionnaire de mise à jour appelle la Enable fonction membre de l’objet par le CCmdUI biais pCmdUI de la mise à jour de l’interface utilisateur.

CFrameWnd::RecalcLayout

Appelé par l’infrastructure lorsque les barres de contrôle standard sont activées ou désactivées ou lorsque la fenêtre frame est redimensionnée.

virtual void RecalcLayout(BOOL bNotify = TRUE);

Paramètres

bNotify
Détermine si l’élément actif sur place de la fenêtre frame reçoit la notification du changement de disposition. Si TRUE, l’élément est averti ; sinon FALSE.

Notes

L’implémentation par défaut de cette fonction membre appelle la CWnd fonction RepositionBars membre pour repositionner toutes les barres de contrôle dans le cadre, ainsi que dans la fenêtre cliente principale (généralement a CView ou MDICLIENT).

Remplacez cette fonction membre pour contrôler l’apparence et le comportement des barres de contrôle une fois la disposition de la fenêtre frame modifiée. Par exemple, appelez-le lorsque vous activez ou désactivez les barres de contrôle ou ajoutez une autre barre de contrôle.

CFrameWnd::rectDefault

Transmettez cette statique CRect en tant que paramètre lors de la création d’une fenêtre pour permettre à Windows de choisir la taille et la position initiales de la fenêtre.

static AFX_DATA const CRect rectDefault;

CFrameWnd::SaveBarState

Appelez cette fonction pour stocker des informations sur chaque barre de contrôle appartenant à la fenêtre frame.

void SaveBarState(LPCTSTR lpszProfileName) const;

Paramètres

lpszProfileName
Nom d’une section dans le fichier d’initialisation ou une clé dans le Registre Windows où les informations d’état sont stockées.

Notes

Ces informations peuvent être lues à partir du fichier d’initialisation à l’aide LoadBarStatede . Les informations stockées incluent la visibilité, l’orientation horizontale/verticale, l’état d’ancrage et la position de la barre de contrôle.

CFrameWnd::SetActivePreviewView

Désigne l’affichage spécifié comme affichage actif pour l’aperçu enrichi.

void SetActivePreviewView(CView* pViewNew);

Paramètres

pViewNew
Pointeur vers une vue à activer.

Notes

CFrameWnd::SetActiveView

Appelez cette fonction membre pour définir la vue active.

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

Paramètres

pViewNew
Spécifie un pointeur vers un CView objet ou NULL pour aucune vue active.

bNotify
Spécifie si la vue doit être avertie de l’activation. Si TRUE, OnActivateView est appelé pour la nouvelle vue ; si FALSE, ce n’est pas le cas.

Notes

L’infrastructure appelle automatiquement cette fonction à mesure que l’utilisateur modifie le focus sur une vue dans la fenêtre frame. Vous pouvez appeler SetActiveView explicitement pour modifier le focus sur l’affichage spécifié.

CFrameWnd::SetDockState

Appelez cette fonction membre pour appliquer les informations d’état stockées dans un CDockState objet aux barres de contrôle de la fenêtre frame.

void SetDockState(const CDockState& state);

Paramètres

state
Appliquez l’état stocké aux barres de contrôle de la fenêtre frame.

Notes

Pour restaurer un état précédent des barres de contrôle, vous pouvez charger l’état stocké avec CDockState::LoadState ou Serializeutiliser SetDockState pour l’appliquer aux barres de contrôle de la fenêtre frame. L’état précédent est stocké dans l’objet CDockState avec GetDockState

CFrameWnd::SetMenuBarState

Définit l’état d’affichage du menu dans l’application MFC actuelle sur masqué ou affiché.

virtual BOOL SetMenuBarState(DWORD nState);

Paramètres

nState
[in] Spécifie s’il faut afficher ou masquer le menu. Le nState paramètre peut avoir les valeurs suivantes :

  • AFX_MBS_VISIBLE (0x01) : affiche le menu s’il est masqué, mais n’a aucun effet s’il est visible.
  • AFX_MBS_HIDDEN (0x02) : masque le menu s’il est visible, mais n’a aucun effet s’il est masqué.

Valeur de retour

TRUE si cette méthode modifie correctement l’état du menu ; sinon, FALSE.

Notes

Si une erreur d’exécution se produit, cette méthode s’affirme en mode Débogage et déclenche une exception dérivée de la CException classe.

CFrameWnd::SetMenuBarVisibility

Définit le comportement par défaut du menu dans l’application MFC actuelle pour qu’il soit masqué ou visible.

virtual void SetMenuBarVisibility(DWORD nStyle);

Paramètres

nStyle
[in] Spécifie si le menu est masqué par défaut ou est visible et a le focus. Le nStyle paramètre peut avoir les valeurs suivantes :

  • AFX_MBV_KEEPVISIBLE (0x01) : le menu s’affiche à tout moment et, par défaut, n’a pas le focus.

  • AFX_MBV_DISPLAYONFOCUS (0x02) : le menu est masqué par défaut. Si le menu est masqué, appuyez sur la touche Alt pour afficher le menu et lui donner le focus. Si le menu est affiché, appuyez sur la touche Alt ou Échap pour masquer le menu.

  • AFX_MBV_DISPLAYONFOCUS | AFX_MBV_DISPLAYONF10 (0x06) : le menu est masqué par défaut. Si le menu est masqué, appuyez sur la touche F10 pour afficher le menu et lui donner le focus. Si le menu s’affiche, appuyez sur la touche F10 pour activer ou désactiver le focus sur le menu. Le menu s’affiche jusqu’à ce que vous appuyiez sur la touche Alt ou Échap pour la masquer.

Notes

Si la valeur du nStyle paramètre n’est pas valide, cette méthode s’affirme en mode Débogage et déclenche CInvalidArgException en mode Mise en production. En cas d’autres erreurs d’exécution, cette méthode s’affirme en mode Débogage et déclenche une exception dérivée de la CException classe.

Cette méthode affecte l’état des menus dans les applications écrites pour Windows Vista et versions ultérieures.

CFrameWnd::SetMessageText

Appelez cette fonction pour placer une chaîne dans le volet de barre d’état qui a un ID de 0.

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

Paramètres

lpszText
Pointe vers la chaîne à placer sur la barre d’état.

nID
ID de ressource de chaîne de la chaîne à placer dans la barre d’état.

Notes

Il s’agit généralement du volet le plus à gauche et le plus long de la barre d’état.

CFrameWnd::SetProgressBarPosition

Définit la position actuelle de la barre de progression Windows 7 affichée dans la barre des tâches.

void SetProgressBarPosition(int nProgressPos);

Paramètres

nProgressPos
Spécifie la position à définir. Elle doit se trouver dans la plage définie par SetProgressBarRange.

Notes

CFrameWnd::SetProgressBarRange

Définit la plage de la barre de progression Windows 7 affichée dans la barre des tâches.

void SetProgressBarRange(
    int nRangeMin,
    int nRangeMax);

Paramètres

nRangeMin
Valeur minimale.

nRangeMax
Valeur maximale.

Notes

CFrameWnd::SetProgressBarState

Définit le type et l’état de l’indicateur de progression affichés sur un bouton de barre des tâches.

void SetProgressBarState(TBPFLAG tbpFlags);

Paramètres

tbpFlags
Indicateurs qui contrôlent l’état actuel du bouton de progression. Spécifiez uniquement l’un des indicateurs suivants, car tous les états s’excluent mutuellement : TBPF_NOPROGRESS, , TBPF_INDETERMINATETBPF_NORMAL, TBPF_ERROR, TBPF_PAUSED.

Notes

CFrameWnd::SetTaskbarOverlayIcon

Surcharge. Applique une superposition à un bouton de barre des tâches pour indiquer l’état de l’application ou avertir l’utilisateur.

BOOL SetTaskbarOverlayIcon(
    UINT nIDResource,
    LPCTSTR lpcszDescr);

BOOL SetTaskbarOverlayIcon(
    HICON hIcon,
    LPCTSTR lpcszDescr);

Paramètres

nIDResource
Spécifie l’ID de ressource d’une icône à utiliser comme superposition. Pour plus d’informations hIcon , consultez la description.

lpcszDescr
Pointeur vers une chaîne qui fournit une version de texte de remplacement des informations transmises par la superposition, à des fins d’accessibilité.

hIcon
Handle d’une icône à utiliser comme superposition. Il doit s’agir d’une petite icône, mesurant 16 x 16 pixels à 96 points par pouce (ppp). Si une icône de superposition est déjà appliquée au bouton de la barre des tâches, cette superposition existante est remplacée. Cette valeur peut être NULL. La façon dont une NULL valeur est gérée dépend du bouton de la barre des tâches qui représente une seule fenêtre ou un groupe de fenêtres. Il incombe à l’application appelante de libérer hIcon lorsqu’elle n’est plus nécessaire.

Valeur de retour

TRUE si elle réussit ; FALSE si la version du système d’exploitation est inférieure à Windows 7 ou si une erreur se produit lors de la définition de l’icône.

Notes

CFrameWnd::SetTitle

Définit le titre de l’objet de fenêtre.

void SetTitle(LPCTSTR lpszTitle);

Paramètres

lpszTitle
Pointeur vers une chaîne de caractères contenant le titre de l’objet fenêtre.

CFrameWnd::ShowControlBar

Appelez cette fonction membre pour afficher ou masquer la barre de contrôle.

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

Paramètres

pBar
Pointeur vers la barre de contrôle à afficher ou masquer.

bShow
Si TRUE, spécifie que la barre de contrôle doit être affichée. Si FALSE, spécifie que la barre de contrôle doit être masquée.

bDelay
Si TRUE, retard affichant la barre de contrôle. Si FALSE, affichez immédiatement la barre de contrôle.

CFrameWnd::ShowOwnedWindows

Appelez cette fonction membre pour afficher toutes les fenêtres descendants de l’objet CFrameWnd .

void ShowOwnedWindows(BOOL bShow);

Paramètres

bShow
Spécifie si les fenêtres détenues doivent être affichées ou masquées.

Voir aussi

CWnd Classe
Graphique hiérarchique
CWnd Classe
CMDIFrameWnd Classe
CMDIChildWnd Classe
CView Classe
CDocTemplate Classe
CRuntimeClass Structure