CWnd::ScrollWindowEx
Fait défiler le contenu de la zone cliente d'une fenêtre.
int ScrollWindowEx(
int dx,
int dy,
LPCRECT lpRectScroll,
LPCRECT lpRectClip,
CRgn* prgnUpdate,
LPRECT lpRectUpdate,
UINT flags
);
Paramètres
dx
Spécifie la quantité, dans les unités, le défilement horizontal. Ce paramètre doit avoir une valeur négative au défilement vers la gauche.Dy
Spécifie la quantité, dans les unités, le défilement vertical. Ce paramètre doit avoir une valeur négative à faire défiler.lpRectScroll
Les points à RECT structure qui spécifie la partie de la zone cliente à défilement. Si ce paramètre est NULL, la zone cliente entière vous faites est.lpRectClip
Les points à RECT structure qui spécifie le rectangle de découpage pour défiler. Cette structure est prioritaire sur le rectangle globale pointe vers lpRectScroll. Seuls les bits à l'intérieur de ce rectangle sont l'objet d'un défilement. Les bits en dehors de ce rectangle ne sont pas affectés même s'ils sont dans le rectangle d' lpRectScroll . Si ce paramètre est NULL, aucun découpage n'est exécuté sur le rectangle de défilement.prgnUpdate
Identifie la zone qui est modifiée pour contenir la zone invalidée en faisant défiler. Ce paramètre peut être NULL.lpRectUpdate
Les points à RECT structure qui recevra les limites du rectangle invalider en faisant défiler. Ce paramètre peut être NULL.flags
Peut avoir l'une des valeurs suivantes :SW_ERASE une fois spécifié avec SW_INVALIDATE, effacements la zone récemment invalidée en envoyant un message de WM_ERASEBKGND dans la fenêtre.
SW_INVALIDATE invalide la zone reconnue par le prgnUpdate après avoir fait défiler.
SW_SCROLLCHILDREN fait défiler toutes les fenêtres enfants qui croisent le rectangle globale pointe vers lpRectScroll par le nombre de pixels spécifiés dans dx et Dy. Les fenêtres envoie un message de WM_MOVE à toutes les fenêtres enfants qui croisent lpRectScroll, même s'ils ne passent pas. Le signe insertion est repositionné lorsqu'une fenêtre enfant vous faites est et le rectangle de curseur croise le rectangle de défilement.
Valeur de retour
La valeur de retour est SIMPLEREGION (invalidée zone rectangulaire), COMPLEXREGION (zone invalidée nonrectangular ; chevauchant les rectangles), ou NULLREGION (aucune zone invalidée), si la fonction est réussie ; sinon la valeur de retour est erreur.
Notes
Cette fonction est semblable à la fonction de ScrollWindow , avec des fonctionnalités supplémentaires.
Si SW_INVALIDATE et SW_ERASE ne sont pas spécifiés, la fonction membre d' ScrollWindowEx n'invalide pas la zone loin dont fait l'objet d'un défilement. Si l'un ou l'autre de ces balises est définie, ScrollWindowEx invalide cette zone. La zone n'est pas mise à jour jusqu'à ce que l'application appelle la fonction membre d' UpdateWindow , appelle la fonction membre de RedrawWindow (spécifiant RDW_UPDATENOW ou RDW_ERASENOW), ou récupère le message de WM_PAINT de la file d'attente d'application.
Si la fenêtre est le style de WS_CLIPCHILDREN , les zones spécifiées retournées par le prgnUpdate et l' lpRectUpdate représentent la surface totale de la fenêtre qui vous faites doit être mise à jour, y compris toutes les zones dans les fenêtres enfants qui ont besoin de mettre à jour.
Si la balise de SW_SCROLLCHILDREN est spécifiée, les fenêtres ne sont pas mises à jour correctement l'écran si une partie d'une fenêtre enfant vous faites est. La partie de la fenêtre vous faites enfant qui se trouve à l'extérieur de le rectangle source ne sera pas supprimée et ne sera pas recréer correctement dans sa nouvelle destination. Utilisez la fonction Windows de DeferWindowPos pour déplacer les fenêtres enfants qui ne se trouvent pas complètement en dessous du rectangle d' lpRectScroll . Le curseur est repositionné si la balise de SW_SCROLLCHILDREN est définie et le rectangle du signe insertion croise le rectangle de défilement.
Il est supposé que toutes les coordonnées d'entrée et de sortie (pour lpRectScroll, lpRectClip, lpRectUpdate, et le prgnUpdate) sont dans les coordonnées clientes, que la fenêtre style a de CS_OWNDC ou de CS_CLASSDC classe. Utilisez les fonctions Windows de LPtoDP et de DPtoLP pour convertir vers et depuis des coordonnées logiques, si nécessaire.
Configuration requise
Header: afxwin.h