La classe CView

Fournit les fonctionnalités de base des classes de vues définies par l'utilisateur.

Syntaxe

class AFX_NOVTABLE CView : public CWnd

Membres

Constructeurs protégés

Nom Description
CView::CView Construit un objet CView.

Méthodes publiques

Nom Description
CView::DoPreparePrinting Affiche la boîte de dialogue Imprimer et crée un contexte d’appareil d’imprimante ; appel en cas de substitution de la OnPreparePrinting fonction membre.
CView::GetDocument Retourne le document associé à l’affichage.
CView::IsSelected Teste si un élément de document est sélectionné. Requis pour la prise en charge OLE.
CView::OnDragEnter Appelé lorsqu’un élément est d’abord déplacé dans la région glisser-déplacer d’une vue.
CView::OnDragLeave Appelé lorsqu’un élément déplacé quitte la région glisser-déplacer d’une vue.
CView::OnDragOver Appelé lorsqu’un élément est déplacé sur la région glisser-déplacer d’une vue.
CView::OnDragScroll Appelé pour déterminer si le curseur est déplacé dans la région de défilement de la fenêtre.
CView::OnDrop Appelé lorsqu’un élément a été supprimé dans la région glisser-déplacer d’une vue, gestionnaire par défaut.
CView::OnDropEx Appelé lorsqu’un élément a été supprimé dans la région glisser-déplacer d’une vue, gestionnaire principal.
CView::OnInitialUpdate Appelé après qu’une vue soit d’abord attachée à un document.
CView::OnPrepareDC Appelée avant que la OnDraw fonction membre soit appelée pour l’affichage d’écran ou la fonction membre est appelée pour l’impression ou l’aperçu OnPrint avant impression.
CView::OnScroll Appelé lorsque les éléments OLE sont déplacés au-delà des bordures de la vue.
CView::OnScrollBy Appelé lorsqu’une vue contenant des éléments OLE actifs sur place est défiler.

Méthodes protégées

Nom Description
CView::OnActivateFrame Appelée lorsque la fenêtre frame contenant la vue est activée ou désactivée.
CView::OnActivateView Appelé lorsqu’une vue est activée.
CView::OnBeginPrinting Appelé lorsqu’un travail d’impression commence ; remplacer pour allouer des ressources GDI (Graphics Device Interface).
CView::OnDraw Appelé pour afficher une image du document pour l’affichage d’écran, l’impression ou l’aperçu avant impression. Implémentation requise.
CView::OnEndPrinting Appelé lorsqu’un travail d’impression se termine ; remplacer pour libérer des ressources GDI.
CView::OnEndPrintPreview Appelé lorsque le mode d’aperçu est arrêté.
CView::OnPreparePrinting Appelé avant l’impression ou l’aperçu d’un document ; remplacer pour initialiser la boîte de dialogue Imprimer.
CView::OnPrint Appelé pour imprimer ou afficher un aperçu d’une page du document.
CView::OnUpdate Appelé pour notifier une vue que son document a été modifié.

Notes

Une vue est attachée à un document et sert d’intermédiaire entre le document et l’utilisateur : l’affichage affiche une image du document à l’écran ou à l’imprimante et interprète l’entrée de l’utilisateur en tant qu’opérations sur le document.

Une vue est un enfant d’une fenêtre frame. Plusieurs vues peuvent partager une fenêtre frame, comme dans le cas d’une fenêtre de fractionnement. La relation entre une classe d’affichage, une classe de fenêtre frame et une classe de document est établie par un CDocTemplate objet. Lorsque l’utilisateur ouvre une nouvelle fenêtre ou fractionne une fenêtre existante, l’infrastructure construit une nouvelle vue et l’attache au document.

Un affichage ne peut être attaché qu’à un seul document, mais un document peut avoir plusieurs vues attachées simultanément , par exemple, si le document est affiché dans une fenêtre de fractionnement ou dans plusieurs fenêtres enfants dans une application MDI (Multiple Document Interface). Votre application peut prendre en charge différents types de vues pour un type de document donné ; Par exemple, un programme de traitement de texte peut fournir à la fois une vue de texte complète d’un document et une vue hiérarchique qui affiche uniquement les en-têtes de section. Ces différents types de vues peuvent être placés dans des fenêtres frame distinctes ou dans des volets distincts d’une seule fenêtre frame si vous utilisez une fenêtre de fractionnement.

Une vue peut être responsable de la gestion de plusieurs types d’entrée différents, tels que l’entrée clavier, l’entrée de la souris ou l’entrée via glisser-déplacer, ainsi que les commandes des menus, des barres d’outils ou des barres de défilement. Une vue reçoit les commandes transférées par sa fenêtre frame. Si la vue ne gère pas une commande donnée, elle transfère la commande à son document associé. Comme toutes les cibles de commande, une vue gère les messages via une carte de messages.

La vue est chargée d’afficher et de modifier les données du document, mais pas de les stocker. Le document fournit l’affichage avec les détails nécessaires sur ses données. Vous pouvez autoriser l’affichage à accéder directement aux membres de données du document, ou vous pouvez fournir des fonctions membres dans la classe de document pour que la classe d’affichage appelle.

Quand les données d’un document changent, l’affichage responsable des modifications appelle généralement la CDocument::UpdateAllViews fonction pour le document, ce qui notifie toutes les autres vues en appelant la OnUpdate fonction membre pour chacun d’eux. L’implémentation par défaut invalide OnUpdate l’ensemble de la zone cliente de la vue. Vous pouvez le remplacer pour invalider uniquement les régions de la zone cliente qui mappent aux parties modifiées du document.

Pour utiliser CView, dérivez une classe de celui-ci et implémentez la OnDraw fonction membre pour effectuer l’affichage de l’écran. Vous pouvez également utiliser OnDraw pour effectuer l’impression et l’aperçu avant impression. L’infrastructure gère la boucle d’impression pour l’impression et l’aperçu de votre document.

Une vue gère les messages de barre de défilement avec les fonctions membres et CWnd::OnVScroll les CWnd::OnHScroll fonctions membres. Vous pouvez implémenter la gestion des messages de barre de défilement dans ces fonctions, ou vous pouvez utiliser la classe CScrollView dérivée pour gérer le CView défilement pour vous.

En outre, la bibliothèque de classes Microsoft Foundation fournit neuf autres classes dérivées CScrollViewde CView:

  • CCtrlView, vue qui permet l’utilisation du document : architecture d’affichage avec arborescence, liste et contrôles d’édition enrichis.

  • CDaoRecordView, vue qui affiche les enregistrements de base de données dans les contrôles de boîte de dialogue.

  • CEditView, vue qui fournit un éditeur de texte multiligne simple. Vous pouvez utiliser un CEditView objet comme contrôle dans une boîte de dialogue, ainsi qu’une vue sur un document.

  • CFormView, vue à défilement qui contient des contrôles de boîte de dialogue et basée sur une ressource de modèle de dialogue.

  • CListView, vue qui permet l’utilisation du document - afficher l’architecture avec des contrôles de liste.

  • CRecordView, vue qui affiche les enregistrements de base de données dans les contrôles de boîte de dialogue.

  • CRichEditView, vue qui permet l’utilisation du document - afficher l’architecture avec des contrôles d’édition enrichis.

  • CScrollView, vue qui fournit automatiquement la prise en charge du défilement.

  • CTreeView, vue qui autorise l’utilisation du document : architecture d’affichage avec des contrôles d’arborescence.

La CView classe a également une classe d’implémentation dérivée nommée CPreviewView, qui est utilisée par l’infrastructure pour effectuer l’aperçu d’impression. Cette classe prend en charge les fonctionnalités propres à la fenêtre d’aperçu avant impression, comme une barre d’outils, un aperçu simple ou double page et un zoom, c’est-à-dire en agrandissant l’image aperçue. Vous n’avez pas besoin d’appeler ou de remplacer l’une des CPreviewViewfonctions membres, sauf si vous souhaitez implémenter votre propre interface pour l’aperçu avant impression (par exemple, si vous souhaitez prendre en charge la modification en mode Aperçu avant impression). Pour plus d’informations sur l’utilisation CView, consultez Architecture et impression de document/affichage. En outre, consultez la Note technique 30 pour plus d’informations sur la personnalisation de l’aperçu avant impression.

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CView

Spécifications

En-têteafxwin.h:

CView::CView

Construit un objet CView.

CView();

Notes

L’infrastructure appelle le constructeur lorsqu’une nouvelle fenêtre frame est créée ou qu’une fenêtre est fractionnée. Remplacez la OnInitialUpdate fonction membre pour initialiser la vue une fois le document attaché.

CView::DoPreparePrinting

Appelez cette fonction à partir de votre remplacement pour OnPreparePrinting appeler la boîte de dialogue Imprimer et créer un contexte d’appareil d’imprimante.

BOOL DoPreparePrinting(CPrintInfo* pInfo);

Paramètres

pInfo
Pointe vers une CPrintInfo structure qui décrit le travail d’impression actuel.

Valeur de retour

Différent de zéro si l’impression ou l’aperçu avant impression peut commencer ; 0 si l’opération a été annulée.

Notes

Le comportement de cette fonction varie selon qu’elle est appelée pour l’impression ou l’aperçu avant impression (spécifié par le m_bPreview membre du pInfo paramètre). Si un fichier est imprimé, cette fonction appelle la boîte de dialogue Imprimer, en utilisant les valeurs de la CPrintInfo structure vers pInfo laquelle pointe ; une fois que l’utilisateur a fermé la boîte de dialogue, la fonction crée un contexte d’appareil d’imprimante en fonction des paramètres spécifiés dans la boîte de dialogue et retourne ce contexte d’appareil par le biais du pInfo paramètre. Ce contexte d’appareil est utilisé pour imprimer le document.

Si un fichier est en préversion, cette fonction crée un contexte d’appareil d’imprimante à l’aide des paramètres d’imprimante actuels ; ce contexte d’appareil est utilisé pour simuler l’imprimante pendant la préversion.

CView::GetDocument

Appelez cette fonction pour obtenir un pointeur vers le document de la vue.

CDocument* GetDocument() const;

Valeur de retour

Pointeur vers l’objet CDocument associé à la vue. NULL si l’affichage n’est pas attaché à un document.

Notes

Cela vous permet d’appeler les fonctions membres du document.

CView::IsSelected

Appelé par l’infrastructure pour case activée si l’élément de document spécifié est sélectionné.

virtual BOOL IsSelected(const CObject* pDocItem) const;

Paramètres

pDocItem
Pointe vers l’élément de document testé.

Valeur de retour

Différent de zéro si l’élément de document spécifié est sélectionné ; sinon 0.

Notes

L’implémentation par défaut de cette fonction retourne FALSE. Remplacez cette fonction si vous implémentez la sélection à l’aide d’objets CDocItem . Vous devez remplacer cette fonction si votre vue contient des éléments OLE.

CView::OnActivateFrame

Appelé par l’infrastructure lorsque la fenêtre frame contenant la vue est activée ou désactivée.

virtual void OnActivateFrame(
    UINT nState,
    CFrameWnd* pFrameWnd);

Paramètres

nState
Spécifie si la fenêtre frame est activée ou désactivée. Ce peut être l’une des valeurs suivantes :

  • WA_INACTIVE La fenêtre frame est désactivée.

  • WA_ACTIVE La fenêtre frame est activée par le biais d’une méthode autre qu’un clic de souris (par exemple, à l’aide de l’interface clavier pour sélectionner la fenêtre).

  • WA_CLICKACTIVE La fenêtre frame est activée par un clic de souris

pFrameWnd
Pointeur vers la fenêtre frame à activer.

Notes

Remplacez cette fonction membre si vous souhaitez effectuer un traitement spécial lorsque la fenêtre frame associée à la vue est activée ou désactivée. Par exemple, CFormView effectue ce remplacement lorsqu’il enregistre et restaure le contrôle qui a le focus.

CView::OnActivateView

Appelé par l’infrastructure lorsqu’une vue est activée ou désactivée.

virtual void OnActivateView(
    BOOL bActivate,
    CView* pActivateView,
    CView* pDeactiveView);

Paramètres

bActivate
Indique si la vue est activée ou désactivée.

pActivateView
Pointe vers l’objet d’affichage en cours d’activation.

pDeactiveView
Pointe vers l’objet d’affichage en cours de désactivation.

Notes

L’implémentation par défaut de cette fonction définit le focus sur la vue activée. Remplacez cette fonction si vous souhaitez effectuer un traitement spécial lorsqu’une vue est activée ou désactivée. Par exemple, si vous souhaitez fournir des signaux visuels spéciaux qui distinguent l’affichage actif des vues inactives, vous examinez le bActivate paramètre et mettez à jour l’apparence de la vue en conséquence.

Les pActivateView paramètres pointent pDeactiveView vers la même vue si la fenêtre de trame principale de l’application est activée sans modification dans l’affichage actif ( par exemple, si le focus est transféré d’une autre application vers celui-ci, plutôt que d’un affichage à un autre au sein de l’application ou lors du basculement entre les fenêtres enfants MDI. Cela permet à une vue de recréer sa palette, si nécessaire.

Ces paramètres diffèrent quand ils CFrameWnd::SetActiveView sont appelés avec une vue différente de ce qui CFrameWnd::GetActiveView retournerait. Cela se produit le plus souvent avec des fenêtres de fractionnement.

CView::OnBeginPrinting

Appelé par l’infrastructure au début d’un travail d’impression ou d’aperçu avant impression, après que OnPreparePrinting a été appelé.

virtual void OnBeginPrinting(
    CDC* pDC,
    CPrintInfo* pInfo);

Paramètres

pDC
Pointe vers le contexte de l’imprimante.

pInfo
Pointe vers une CPrintInfo structure qui décrit le travail d’impression actuel.

Notes

L’implémentation par défaut de cette fonction est sans effet. Remplacez cette fonction pour allouer des ressources GDI, telles que des stylets ou des polices, nécessaires précisément pour l’impression. Sélectionnez les objets GDI dans le contexte de l’appareil à partir de la OnPrint fonction membre pour chaque page qui les utilise. Si vous utilisez le même objet d’affichage pour l’affichage et l’impression d’écran, utilisez des variables distinctes pour les ressources GDI nécessaires à chaque affichage ; vous pourrez ainsi mettre à jour l’écran pendant l’impression.

Vous pouvez aussi utiliser cette fonction pour exécuter des initialisations qui dépendent des propriétés du contexte de l’imprimante. Par exemple, le nombre de pages nécessaires à l’impression du document peut dépendre des paramètres que l’utilisateur a spécifiés dans la boîte de dialogue d’impression (comme la longueur de page). Dans ce cas, vous ne pouvez pas spécifier la longueur du document dans la OnPreparePrinting fonction membre, où vous le feriez normalement ; vous devez attendre que le contexte de l’appareil d’imprimante ait été créé en fonction des paramètres de la boîte de dialogue. OnBeginPrinting est la première fonction substituable qui vous donne accès à l’objet CDC représentant le contexte de l’appareil d’imprimante. Vous pouvez donc définir la longueur du document à partir de cette fonction. Notez que si la longueur du document n’est pas spécifiée à ce stade, aucune barre de défilement ne s’affiche pendant l’aperçu avant impression.

CView::OnDragEnter

Appelé par l’infrastructure lorsque la souris entre d’abord dans la région de non-défilement de la fenêtre cible de déplacement.

virtual DROPEFFECT OnDragEnter(
    COleDataObject* pDataObject,
    DWORD dwKeyState,
    CPoint point);

Paramètres

pDataObject
Pointe vers l’être COleDataObject déplacé dans la zone de dépôt de la vue.

dwKeyState
Contient l’état des touches de modificateur. Il s’agit d’une combinaison de n’importe quel nombre des éléments suivants : MK_CONTROL, , MK_SHIFTMK_ALT, MK_LBUTTON, MK_MBUTTON, et MK_RBUTTON.

point
Position actuelle de la souris par rapport à la zone cliente de la vue.

Valeur de retour

Valeur du DROPEFFECT type énuméré, qui indique le type de suppression qui se produirait si l’utilisateur a supprimé l’objet à cette position. Le type de suppression dépend généralement de l’état de clé actuel indiqué par dwKeyState. Un mappage standard des états clés aux DROPEFFECT valeurs est le suivant :

  • DROPEFFECT_NONE L’objet de données ne peut pas être supprimé dans cette fenêtre.

  • DROPEFFECT_LINK pour MK_CONTROL|MK_SHIFT Créer une liaison entre l’objet et son serveur.

  • DROPEFFECT_COPY pour MK_CONTROL Créer une copie de l’objet supprimé.

  • DROPEFFECT_MOVE pour MK_ALT Créer une copie de l’objet supprimé et supprimer l’objet d’origine. Il s’agit généralement de l’effet de suppression par défaut, lorsque la vue peut accepter cet objet de données.

Pour plus d’informations, consultez l’exemple OCLIENTMFC Advanced Concepts .

Notes

L’implémentation par défaut consiste à ne rien faire et à retourner DROPEFFECT_NONE.

Remplacez cette fonction pour préparer les appels futurs à la OnDragOver fonction membre. Toutes les données requises à partir de l’objet de données doivent être récupérées pour une utilisation ultérieure dans la OnDragOver fonction membre. La vue doit également être mise à jour pour donner des commentaires visuels à l’utilisateur. Pour plus d’informations, consultez l’article OLE glisser-déplacer : Implémenter une cible de déplacement.

CView::OnDragLeave

Appelé par l’infrastructure pendant une opération de glissement lorsque la souris est déplacée hors de la zone de déplacement valide pour cette fenêtre.

virtual void OnDragLeave();

Notes

Remplacez cette fonction si l’affichage actuel doit propre toutes les actions effectuées pendant OnDragEnter ou OnDragOver appels, telles que la suppression de commentaires utilisateur visuels pendant que l’objet a été déplacé et supprimé.

CView::OnDragOver

Appelé par l’infrastructure pendant une opération de glissement lorsque la souris est déplacée sur la fenêtre cible de déplacement.

virtual DROPEFFECT OnDragOver(
    COleDataObject* pDataObject,
    DWORD dwKeyState,
    CPoint point);

Paramètres

pDataObject
Pointe vers l’être COleDataObject déplacé sur la cible de déplacement.

dwKeyState
Contient l’état des touches de modificateur. Il s’agit d’une combinaison de n’importe quel nombre des éléments suivants : MK_CONTROL, , MK_SHIFTMK_ALT, MK_LBUTTON, MK_MBUTTON, et MK_RBUTTON.

point
Position actuelle de la souris par rapport à la zone cliente d’affichage.

Valeur de retour

Valeur du DROPEFFECT type énuméré, qui indique le type de suppression qui se produirait si l’utilisateur a supprimé l’objet à cette position. Le type de suppression dépend souvent de l’état de clé actuel, comme indiqué par dwKeyState. Un mappage standard des états clés aux DROPEFFECT valeurs est le suivant :

  • DROPEFFECT_NONE L’objet de données ne peut pas être supprimé dans cette fenêtre.

  • DROPEFFECT_LINK pour MK_CONTROL|MK_SHIFT Créer une liaison entre l’objet et son serveur.

  • DROPEFFECT_COPY pour MK_CONTROL Créer une copie de l’objet supprimé.

  • DROPEFFECT_MOVE pour MK_ALT Créer une copie de l’objet supprimé et supprimer l’objet d’origine. Il s’agit généralement de l’effet de suppression par défaut, lorsque la vue peut accepter l’objet de données.

Pour plus d’informations, consultez l’exemple OCLIENTMFC Advanced Concepts .

Notes

L’implémentation par défaut consiste à ne rien faire et à retourner DROPEFFECT_NONE.

Remplacez cette fonction pour donner des commentaires visuels à l’utilisateur pendant l’opération de glissement. Étant donné que cette fonction est appelée en continu, tout code contenu dans celui-ci doit être optimisé autant que possible. Pour plus d’informations, consultez l’article OLE glisser-déplacer : Implémenter une cible de déplacement.

CView::OnDragScroll

Appelé par l’infrastructure avant d’appeler OnDragEnter ou OnDragOver pour déterminer si le point se trouve dans la région de défilement.

virtual DROPEFFECT OnDragScroll(
    DWORD dwKeyState,
    CPoint point);

Paramètres

dwKeyState
Contient l’état des touches de modificateur. Il s’agit d’une combinaison de n’importe quel nombre des éléments suivants : MK_CONTROL, , MK_SHIFTMK_ALT, MK_LBUTTON, MK_MBUTTON, et MK_RBUTTON.

point
Contient l’emplacement du curseur, en pixels, par rapport à l’écran.

Valeur de retour

Valeur du DROPEFFECT type énuméré, qui indique le type de suppression qui se produirait si l’utilisateur a supprimé l’objet à cette position. Le type de suppression dépend généralement de l’état de clé actuel indiqué par dwKeyState. Un mappage standard des états clés aux DROPEFFECT valeurs est le suivant :

  • DROPEFFECT_NONE L’objet de données ne peut pas être supprimé dans cette fenêtre.

  • DROPEFFECT_LINK pour MK_CONTROL|MK_SHIFT Créer une liaison entre l’objet et son serveur.

  • DROPEFFECT_COPY pour MK_CONTROL Créer une copie de l’objet supprimé.

  • DROPEFFECT_MOVE pour MK_ALT Créer une copie de l’objet supprimé et supprimer l’objet d’origine.

  • DROPEFFECT_SCROLL Indique qu’une opération de défilement glisser est sur le point de se produire ou se produit dans la vue cible.

Pour plus d’informations, consultez l’exemple OCLIENTMFC Advanced Concepts .

Notes

Remplacez cette fonction lorsque vous souhaitez fournir un comportement spécial pour cet événement. L’implémentation par défaut fait défiler automatiquement les fenêtres lorsque le curseur est déplacé vers la région de défilement par défaut à l’intérieur de la bordure de chaque fenêtre. Pour plus d’informations, consultez l’article OLE glisser-déplacer : Implémenter une cible de déplacement.

CView::OnDraw

Appelé par l’infrastructure pour afficher une image du document.

virtual void OnDraw(CDC* pDC) = 0;

Paramètres

pDC
Pointe vers le contexte de l’appareil à utiliser pour le rendu d’une image du document.

Notes

L’infrastructure appelle cette fonction pour effectuer l’affichage d’écran, l’impression et l’aperçu avant impression, et il transmet un contexte d’appareil différent dans chaque cas. Il n'y a pas d'implémentation par défaut.

Vous devez remplacer cette fonction pour afficher votre affichage du document. Vous pouvez effectuer des appels d’interface d’appareil graphique (GDI) à l’aide de l’objet CDC pointé par le pDC paramètre. Vous pouvez sélectionner des ressources GDI, telles que des stylets ou des polices, dans le contexte de l’appareil avant de dessiner, puis les désélectionner ensuite. Souvent, votre code de dessin peut être indépendant de l’appareil ; autrement dit, il ne nécessite pas d’informations sur le type d’appareil qui affiche l’image.

Pour optimiser le dessin, appelez la RectVisible fonction membre du contexte de l’appareil pour déterminer si un rectangle donné sera dessiné. Si vous devez faire la distinction entre l’affichage d’écran normal et l’impression, appelez la IsPrinting fonction membre du contexte de l’appareil.

CView::OnDrop

Appelé par l’infrastructure lorsque l’utilisateur libère un objet de données sur une cible de déplacement valide.

virtual BOOL OnDrop(
    COleDataObject* pDataObject,
    DROPEFFECT dropEffect,
    CPoint point);

Paramètres

pDataObject
Pointe vers la COleDataObject cible de suppression.

dropEffect
Effet de suppression demandé par l’utilisateur.

  • DROPEFFECT_COPY Crée une copie de l’objet de données supprimé.

  • DROPEFFECT_MOVE Déplace l’objet de données vers l’emplacement actuel de la souris.

  • DROPEFFECT_LINK Crée un lien entre un objet de données et son serveur.

point
Position actuelle de la souris par rapport à la zone cliente d’affichage.

Valeur de retour

Différent de zéro si la baisse a réussi ; sinon 0.

Notes

L’implémentation par défaut ne fait rien et retourne FALSE.

Remplacez cette fonction pour implémenter l’effet d’une suppression OLE dans la zone cliente de la vue. L’objet de données peut être examiné par le biais pDataObject des formats de données du Presse-papiers et des données supprimées au point spécifié.

Remarque

L’infrastructure n’appelle pas cette fonction s’il existe un remplacement dans OnDropEx cette classe d’affichage.

CView::OnDropEx

Appelé par l’infrastructure lorsque l’utilisateur libère un objet de données sur une cible de déplacement valide.

virtual DROPEFFECT OnDropEx(
    COleDataObject* pDataObject,
    DROPEFFECT dropDefault,
    DROPEFFECT dropList,
    CPoint point);

Paramètres

pDataObject
Pointe vers la COleDataObject cible de suppression.

dropDefault
Effet que l’utilisateur a choisi pour l’opération de suppression par défaut en fonction de l’état actuel de la clé. Ce peut être DROPEFFECT_NONE. Les effets de suppression sont abordés dans la section Remarques.

dropList
Liste des effets de suppression pris en charge par la source de suppression. Les valeurs d’effet de suppression peuvent être combinées à l’aide de l’opération OR ( |) au niveau du bit. Les effets de suppression sont abordés dans la section Remarques.

point
Position actuelle de la souris par rapport à la zone cliente d’affichage.

Valeur de retour

Effet de suppression résultant de la tentative de suppression à l’emplacement spécifié par point. Il doit s’agir de l’une des valeurs indiquées par dropEffectList. Les effets de suppression sont abordés dans la section Remarques.

Notes

L’implémentation par défaut consiste à ne rien faire et à retourner une valeur factice (-1) pour indiquer que l’infrastructure doit appeler le OnDrop gestionnaire.

Remplacez cette fonction pour implémenter l’effet d’un glisser-déplacer vers le bouton droit de la souris. Le glisser-déplacer à droite affiche généralement un menu de choix lorsque le bouton droit de la souris est libéré.

Votre remplacement OnDropEx doit interroger le bouton droit de la souris. Vous pouvez appeler GetKeyState ou stocker l’état du bouton droit à partir de votre OnDragEnter gestionnaire.

  • Si le bouton droit de la souris est enfoncé, votre remplacement doit afficher un menu contextuel qui offre la prise en charge des effets de liste déroulante par la source de liste déroulante.

    • Examinez dropList pour déterminer les effets de suppression pris en charge par la source de suppression. Activez uniquement ces actions dans le menu contextuel.

    • Permet SetMenuDefaultItem de définir l’action par défaut en fonction dropDefaultde .

    • Enfin, effectuez l’action indiquée par la sélection de l’utilisateur dans le menu contextuel.

  • Si le bouton droit de la souris n’est pas enfoncé, votre remplacement doit traiter cette opération en tant que demande de liste déroulante standard. Utilisez l’effet de suppression spécifié dans dropDefault. Vous pouvez également renvoyer la valeur factice (-1) pour indiquer que OnDrop cette opération de suppression sera gérée.

Permet pDataObject d’examiner le COleDataObject format de données du Presse-papiers et les données supprimées au point spécifié.

Les effets de suppression décrivent l’action associée à une opération de suppression. Consultez la liste suivante des effets de suppression :

  • DROPEFFECT_NONE Une baisse n’est pas autorisée.

  • DROPEFFECT_COPY Une opération de copie est effectuée.

  • DROPEFFECT_MOVE Une opération de déplacement est effectuée.

  • DROPEFFECT_LINK Un lien des données supprimées vers les données d’origine est établi.

  • DROPEFFECT_SCROLL Indique qu’une opération de défilement glisser est sur le point de se produire ou se produit dans la cible.

Pour plus d’informations sur la définition de la commande de menu par défaut, consultez SetMenuDefaultItem le Kit de développement logiciel (SDK) Windows et CMenu::GetSafeHmenu ce volume.

CView::OnEndPrinting

Appelé par l’infrastructure après l’impression ou l’aperçu d’un document.

virtual void OnEndPrinting(
    CDC* pDC,
    CPrintInfo* pInfo);

Paramètres

pDC
Pointe vers le contexte de l’imprimante.

pInfo
Pointe vers une CPrintInfo structure qui décrit le travail d’impression actuel.

Notes

L’implémentation par défaut de cette fonction est sans effet. Remplacez cette fonction pour libérer les ressources GDI que vous avez allouées dans la OnBeginPrinting fonction membre.

CView::OnEndPrintPreview

Appelé par l’infrastructure lorsque l’utilisateur quitte le mode aperçu avant impression.

virtual void OnEndPrintPreview(
    CDC* pDC,
    CPrintInfo* pInfo,
    POINT point,
    CPreviewView* pView);

Paramètres

pDC
Pointe vers le contexte de l’imprimante.

pInfo
Pointe vers une CPrintInfo structure qui décrit le travail d’impression actuel.

point
Spécifie le point de la page qui a été affichée pour la dernière fois en mode aperçu.

pView
Pointe vers l’objet d’affichage utilisé pour l’aperçu.

Notes

L’implémentation par défaut de cette fonction appelle la OnEndPrinting fonction membre et restaure la fenêtre cadre principale à l’état dans lequel elle se trouvait avant le début de l’aperçu avant le début de l’aperçu avant le début de l’impression. Remplacez cette fonction pour effectuer un traitement spécial lorsque le mode d’aperçu est arrêté. Par exemple, si vous souhaitez conserver la position de l’utilisateur dans le document lors du passage du mode d’aperçu au mode d’affichage normal, vous pouvez faire défiler jusqu’à la position décrite par le point paramètre et le m_nCurPage membre de la CPrintInfo structure vers laquelle pointe le pInfo paramètre.

Appelez toujours la version de classe de base de OnEndPrintPreview votre remplacement, généralement à la fin de la fonction.

CView::OnInitialUpdate

Appelé par l’infrastructure après que la vue est d’abord attachée au document, mais avant l’affichage initialement affiché.

virtual void OnInitialUpdate();

Notes

L’implémentation par défaut de cette fonction appelle la OnUpdate fonction membre sans informations d’indicateur (autrement dit, en utilisant les valeurs par défaut 0 pour le lHint paramètre et NULL pour le pHint paramètre). Remplacez cette fonction pour effectuer une initialisation ponctuelle qui nécessite des informations sur le document. Par exemple, si votre application a des documents de taille fixe, vous pouvez utiliser cette fonction pour initialiser les limites de défilement d’une vue en fonction de la taille du document. Si votre application prend en charge les documents de taille variable, utilisez OnUpdate cette option pour mettre à jour les limites de défilement chaque fois que le document change.

CView::OnPrepareDC

Appelé par l’infrastructure avant que la OnDraw fonction membre soit appelée pour l’affichage d’écran et avant que la fonction membre soit appelée pour chaque page lors de l’impression ou de l’aperçu OnPrint avant impression.

virtual void OnPrepareDC(
    CDC* pDC,
    CPrintInfo* pInfo = NULL);

Paramètres

pDC
Pointe vers le contexte de l’appareil à utiliser pour le rendu d’une image du document.

pInfo
Pointe vers une CPrintInfo structure qui décrit le travail d’impression actuel si OnPrepareDC elle est appelée pour l’impression ou l’aperçu avant impression ; le m_nCurPage membre spécifie la page sur le point d’être imprimée. Ce paramètre est NULL appelé OnPrepareDC pour l’affichage de l’écran.

Notes

L’implémentation par défaut de cette fonction ne fait rien si la fonction est appelée pour l’affichage de l’écran. Toutefois, cette fonction est substituée dans les classes dérivées, telles que CScrollView, pour ajuster les attributs du contexte de l’appareil ; par conséquent, vous devez toujours appeler l’implémentation de la classe de base au début de votre remplacement.

Si la fonction est appelée pour l’impression, l’implémentation par défaut examine les informations de page stockées dans le pInfo paramètre. Si la longueur du document n’a pas été spécifiée, OnPrepareDC suppose que le document doit être long d’une page et arrête la boucle d’impression une fois qu’une page a été imprimée. La fonction arrête la boucle d’impression en définissant le m_bContinuePrinting membre de la structure FALSEsur .

Remplacez OnPrepareDC l’une des raisons suivantes :

  • Pour ajuster les attributs du contexte de l’appareil en fonction des besoins de la page spécifiée. Par exemple, si vous devez définir le mode de mappage ou d’autres caractéristiques du contexte de l’appareil, procédez ainsi dans cette fonction.

  • Pour effectuer la pagination au moment de l’impression. Normalement, vous spécifiez la longueur du document lors de l’impression, à l’aide de la OnPreparePrinting fonction membre. Toutefois, si vous ne savez pas à l’avance combien de temps le document est (par exemple, lors de l’impression d’un nombre indéterminé d’enregistrements d’une base de données), remplacez-le OnPrepareDC pour tester la fin du document pendant son impression. Lorsqu’il n’y a plus de document à imprimer, définissez le m_bContinuePrinting membre de la CPrintInfo structure FALSEsur .

  • Pour envoyer des codes d’échappement à l’imprimante sur une base de page par page. Pour envoyer des codes d’échappement à partir de OnPrepareDC, appelez la Escape fonction membre du pDC paramètre.

Appelez la version de classe de base du OnPrepareDC début de votre remplacement.

Exemple

void CMyView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
   CView::OnPrepareDC(pDC, pInfo);

   // If we are printing, set the mapmode and the window
   // extent properly, then set viewport extent. Use the
   // SetViewportOrg member function in the CDC class to
   // move the viewport origin to the center of the view.

   if (pDC->IsPrinting()) // Is the DC a printer DC.
   {
      CRect rect;
      GetClientRect(&rect);

      pDC->SetMapMode(MM_ISOTROPIC);
      CSize ptOldWinExt = pDC->SetWindowExt(1000, 1000);
      ASSERT(ptOldWinExt.cx != 0 && ptOldWinExt.cy != 0);
      CSize ptOldViewportExt = pDC->SetViewportExt(rect.Width(), -rect.Height());
      ASSERT(ptOldViewportExt.cx != 0 && ptOldViewportExt.cy != 0);
      CPoint ptOldOrigin = pDC->SetViewportOrg(rect.Width() / 2, rect.Height() / 2);
   }
}

CView::OnPreparePrinting

Appelé par l’infrastructure avant l’impression ou l’aperçu d’un document.

virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);

Paramètres

pInfo
Pointe vers une CPrintInfo structure qui décrit le travail d’impression actuel.

Valeur de retour

Non zéro pour commencer l’impression ; 0 si le travail d’impression a été annulé.

Notes

L'implémentation par défaut n'exécute aucune opération.

Vous devez remplacer cette fonction pour activer l’impression et l’aperçu avant impression. Appelez la DoPreparePrinting fonction membre, en lui transmettant le pInfo paramètre, puis retournez sa valeur de retour ; DoPreparePrinting affiche la boîte de dialogue Imprimer et crée un contexte d’appareil d’imprimante. Si vous souhaitez initialiser la boîte de dialogue Imprimer avec des valeurs autres que les valeurs par défaut, affectez des valeurs aux membres de pInfo. Par exemple, si vous connaissez la longueur du document, passez la valeur à la fonction membre SetMaxPage avant pInfo d’appeler DoPreparePrinting. Cette valeur est affichée dans la zone À : dans la partie Plage de la boîte de dialogue Imprimer.

DoPreparePrinting n’affiche pas la boîte de dialogue Imprimer pour un travail d’aperçu. Si vous souhaitez contourner la boîte de dialogue Imprimer pour un travail d’impression, case activée que le m_bPreview membre pInfo d’estFALSE, puis définissez-le TRUE avant de le passer DoPreparePrinting; réinitialisez-le FALSE ensuite.

Si vous devez effectuer des initialisations qui nécessitent l’accès à l’objet CDC représentant le contexte de l’appareil d’imprimante (par exemple, si vous devez connaître la taille de page avant de spécifier la longueur du document), remplacez la OnBeginPrinting fonction membre.

Si vous souhaitez définir la valeur du ou des m_nNumPreviewPages membres du pInfo paramètre, procédez ainsi après l’appel DoPreparePrinting.m_strPageDesc La DoPreparePrinting fonction membre définit m_nNumPreviewPages la valeur trouvée dans le fichier de l’application. Fichier INI et définit m_strPageDesc sa valeur par défaut.

Exemple

Remplacez OnPreparePrinting et appelez DoPreparePrinting le remplacement afin que l’infrastructure affiche une boîte de dialogue Imprimer et crée un contrôleur de domaine d’imprimante pour vous.

BOOL CMyEditView::OnPreparePrinting(CPrintInfo* pInfo)
{
   return CEditView::DoPreparePrinting(pInfo);
}

Si vous connaissez le nombre de pages contenues dans le document, définissez la page maximale avant OnPreparePrinting d’appeler DoPreparePrinting. L’infrastructure affiche le numéro de page maximal dans la zone « à » de la boîte de dialogue Imprimer.

BOOL CExampleView::OnPreparePrinting(CPrintInfo* pInfo)
{
   //The document has 2 pages.
   pInfo->SetMaxPage(2);
   return CView::DoPreparePrinting(pInfo);
}

CView::OnPrint

Appelé par l’infrastructure pour imprimer ou afficher un aperçu d’une page du document.

virtual void OnPrint(
    CDC* pDC,
    CPrintInfo* pInfo);

Paramètres

pDC
Pointe vers le contexte de l’imprimante.

pInfo
Pointe vers une CPrintInfo structure qui décrit le travail d’impression actuel.

Notes

Pour chaque page imprimée, l’infrastructure appelle cette fonction immédiatement après l’appel de la OnPrepareDC fonction membre. La page en cours d’impression est spécifiée par le m_nCurPage membre de la CPrintInfo structure qui pInfo pointe vers. L’implémentation par défaut appelle la OnDraw fonction membre et la transmet au contexte de l’appareil d’imprimante.

Remplacez cette fonction pour l’une des raisons suivantes :

  • Pour autoriser l’impression de documents multipage. Affiche uniquement la partie du document qui correspond à la page en cours d’impression. Si vous utilisez OnDraw pour effectuer le rendu, vous pouvez ajuster l’origine de la fenêtre d’affichage afin que seule la partie appropriée du document soit imprimée.

  • Pour que l’image imprimée soit différente de l’image d’écran (autrement dit, si votre application n’est pas WYSIWYG). Au lieu de passer le contexte de l’appareil d’imprimante à OnDraw, utilisez le contexte de l’appareil pour afficher une image à l’aide d’attributs non affichés à l’écran.

    Si vous avez besoin de ressources GDI pour l’impression que vous n’utilisez pas pour l’affichage de l’écran, sélectionnez-les dans le contexte de l’appareil avant de les dessiner et de les désélectionner par la suite. Ces ressources GDI doivent être allouées dans OnBeginPrinting et publiées dans OnEndPrinting.

  • Pour implémenter des en-têtes ou des pieds de page. Vous pouvez toujours utiliser OnDraw pour effectuer le rendu en limitant la zone sur laquelle elle peut s’imprimer.

Notez que le m_rectDraw membre du pInfo paramètre décrit la zone imprimable de la page en unités logiques.

N’appelez OnPrepareDC pas votre remplacement OnPrint; le framework appelle OnPrepareDC automatiquement avant d’appeler OnPrint.

Exemple

Voici un squelette pour une fonction substituée OnPrint :

void CMyView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
   UNREFERENCED_PARAMETER(pInfo);

   // Print headers and/or footers, if desired.
   // Find portion of document corresponding to pInfo->m_nCurPage.
   OnDraw(pDC);
}

Pour obtenir un autre exemple, consultez CRichEditView::PrintInsideRect.

CView::OnScroll

Appelé par l’infrastructure pour déterminer si le défilement est possible.

virtual BOOL OnScroll(
    UINT nScrollCode,
    UINT nPos,
    BOOL bDoScroll = TRUE);

Paramètres

nScrollCode
Code de barre de défilement qui indique la demande de défilement de l’utilisateur. Ce paramètre se compose de deux parties : un octet de bas ordre, qui détermine le type de défilement se produisant horizontalement et un octet de classement élevé, qui détermine le type de défilement se produisant verticalement :

  • SB_BOTTOM Fait défiler vers le bas.

  • SB_LINEDOWN Fait défiler une ligne vers le bas.

  • SB_LINEUP Fait défiler une ligne vers le haut.

  • SB_PAGEDOWN Fait défiler une page vers le bas.

  • SB_PAGEUP Fait défiler une page vers le haut.

  • SB_THUMBTRACK Fait glisser la zone de défilement vers la position spécifiée. La position actuelle est spécifiée dans nPos.

  • SB_TOP Fait défiler vers le haut.

nPos
Contient la position actuelle de la zone de défilement si le code de barre de défilement est SB_THUMBTRACK; sinon, il n’est pas utilisé. Selon la plage de défilement initiale, nPos peut être négative et doit être castée en cas int de besoin.

bDoScroll
Détermine si vous devez réellement effectuer l’action de défilement spécifiée. Si TRUE, le défilement doit avoir lieu ; si FALSE, le défilement ne doit pas se produire.

Valeur de retour

Si bDoScroll c’est TRUE le cas et que la vue a été réellement défilement, retournez un non-zéro ; sinon, 0. Si bDoScroll c’est FALSEle cas, retournez la valeur que vous auriez retournée si bDoScroll c’était TRUE, même si vous n’effectuez pas réellement le défilement.

Notes

Dans un cas, cette fonction est appelée par l’infrastructure avec bDoScroll la valeur définie TRUE lorsque la vue reçoit un message de barre de défilement. Dans ce cas, vous devez faire défiler l’affichage. Dans l’autre cas, cette fonction est appelée avec bDoScroll la valeur définie FALSE lorsqu’un élément OLE est initialement déplacé dans la région de défilement automatique d’une cible de déplacement avant que le défilement ne se produise réellement. Dans ce cas, vous ne devez pas faire défiler l’affichage.

CView::OnScrollBy

Appelé par l’infrastructure lorsque l’utilisateur affiche une zone au-delà de la vue actuelle du document, en faisant glisser un élément OLE sur les bordures actuelles de la vue ou en manipulant les barres de défilement verticales ou horizontales.

virtual BOOL OnScrollBy(
    CSize sizeScroll,
    BOOL bDoScroll = TRUE);

Paramètres

sizeScroll
Nombre de pixels défiler horizontalement et verticalement.

bDoScroll
Détermine si le défilement de la vue se produit. Si TRUE, le défilement a lieu ; si FALSE, le défilement ne se produit pas.

Valeur de retour

Différent de zéro si la vue a pu faire défiler ; sinon 0.

Notes

Dans les classes dérivées, cette méthode case activée s pour voir si la vue est défilante dans la direction demandée par l’utilisateur, puis met à jour la nouvelle région si nécessaire. Cette fonction est automatiquement appelée CWnd::OnHScroll et CWnd::OnVScroll effectue la demande de défilement réelle.

L’implémentation par défaut de cette méthode ne modifie pas la vue, mais si elle n’est pas appelée, la vue ne fait pas défiler dans une CScrollViewclasse dérivée.

Si la largeur ou la hauteur du document dépasse 32767 pixels, le défilement passé à 32767 échoue, car OnScrollBy il est appelé avec un argument non valide sizeScroll .

CView::OnUpdate

Appelé par l’infrastructure après la modification du document de l’affichage ; cette fonction est appelée par CDocument::UpdateAllViews et permet à la vue de mettre à jour son affichage pour refléter ces modifications.

virtual void OnUpdate(
    CView* pSender,
    LPARAM lHint,
    CObject* pHint);

Paramètres

pSender
Pointe vers la vue qui a modifié le document ou NULL si toutes les vues doivent être mises à jour.

lHint
Contient des informations sur les modifications.

pHint
Pointe vers un objet stockant des informations sur les modifications.

Notes

Elle est également appelée par l’implémentation par défaut de OnInitialUpdate. L’implémentation par défaut invalide l’ensemble de la zone cliente, le marquant pour la peinture lorsque le message suivant WM_PAINT est reçu. Remplacez cette fonction si vous souhaitez mettre à jour uniquement les régions qui correspondent aux parties modifiées du document. Pour ce faire, vous devez transmettre des informations sur les modifications à l’aide des paramètres d’indicateur.

Pour utiliser lHint, définissez des valeurs d’indicateur spéciales, généralement un masque de bits ou un type énuméré, et que le document passe l’une de ces valeurs. Pour utiliser pHint, dérivez une classe d’indicateur à partir du CObject document et faites passer un pointeur à un objet hint ; en cas de OnUpdatesubstitution , utilisez la CObject::IsKindOf fonction membre pour déterminer le type d’exécution de l’objet hint.

En règle générale, vous ne devez pas effectuer de dessin directement à partir de OnUpdate. Au lieu de cela, déterminez le rectangle décrivant, dans les coordonnées de l’appareil, la zone qui nécessite la mise à jour ; passez ce rectangle à CWnd::InvalidateRect. Cela provoque la peinture lors de la prochaine réception d’un WM_PAINT message.

Si lHint la valeur est 0 et pHint est NULL, le document a envoyé une notification de mise à jour générique. Si une vue reçoit une notification de mise à jour générique ou si elle ne peut pas décoder les indicateurs, elle doit invalider toute sa zone cliente.

Voir aussi

Exemple MFC MDIDOCVW
CWnd Classe
Graphique hiérarchique
CWnd Classe
CFrameWnd Classe
CSplitterWnd Classe
CDC Classe
CDocTemplate Classe
CDocument Classe