Funzione ScrollWindowEx (winuser.h)
La funzione ScrollWindowEx scorre il contenuto dell'area client della finestra specificata.
Sintassi
int ScrollWindowEx(
[in] HWND hWnd,
[in] int dx,
[in] int dy,
[in] const RECT *prcScroll,
[in] const RECT *prcClip,
[in] HRGN hrgnUpdate,
[out] LPRECT prcUpdate,
[in] UINT flags
);
Parametri
[in] hWnd
Tipo: HWND
Gestire nella finestra in cui deve essere eseguito lo scorrimento dell'area client.
[in] dx
Tipo: int
Specifica la quantità, in unità di dispositivo, dello scorrimento orizzontale. Questo parametro deve essere un valore negativo per scorrere verso sinistra.
[in] dy
Tipo: int
Specifica la quantità, in unità di dispositivo, dello scorrimento verticale. Questo parametro deve essere un valore negativo per scorrere verso l'alto.
[in] prcScroll
Tipo: const RECT*
Puntatore a una struttura RECT che specifica la parte dell'area client da scorrere. Se questo parametro è NULL, viene eseguito lo scorrimento dell'intera area client.
[in] prcClip
Tipo: const RECT*
Puntatore a una struttura RECT contenente le coordinate del rettangolo di ritaglio. Sono interessati solo i bit del dispositivo all'interno del rettangolo di ritaglio. I bit scorrevoli dall'esterno del rettangolo all'interno vengono dipinti; i bit scorrevoli dall'interno del rettangolo all'esterno non vengono dipinti. Questo parametro può essere NULL.
[in] hrgnUpdate
Tipo: HRGN
Handle per l'area modificata per contenere l'area invalidata eseguendo lo scorrimento. Questo parametro può essere NULL.
[out] prcUpdate
Tipo: LPRECT
Puntatore a una struttura RECT che riceve i limiti del rettangolo invalidato tramite scorrimento. Questo parametro può essere NULL.
[in] flags
Tipo: UINT
Specifica i flag che controllano lo scorrimento. Questo parametro può essere una combinazione dei valori seguenti.
Valore | Significato |
---|---|
|
Cancella l'area appena invalidata inviando un messaggio di WM_ERASEBKGND alla finestra quando specificato con il flag SW_INVALIDATE. |
|
Invalida l'area identificata dal parametro hrgnUpdate dopo lo scorrimento. |
|
Scorre tutte le finestre figlio che intersecano il rettangolo a cui punta il parametro prcScroll . Le finestre figlio vengono scorrevoli in base al numero di pixel specificati dai parametri dx e dy . Il sistema invia un messaggio WM_MOVE a tutte le finestre figlio che intersecano il rettangolo prcScroll , anche se non si spostano. |
|
Scorre con scorrimento smussato. Usare la parte HIWORD del parametro flags per indicare quanto tempo, in millisecondi, deve essere eseguita l'operazione di scorrimento uniforme. |
Valore restituito
Tipo: int
Se la funzione ha esito positivo, il valore restituito è SIMPLEREGION (area invalidata rettangolare), COMPLEXREGION (area invalidata nonrectangulare; rettangoli sovrapposti) o NULLREGION (nessuna area invalidata).
Se la funzione ha esito negativo, il valore restituito è ERROR. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
Se i flag SW_INVALIDATE e SW_ERASE non vengono specificati, ScrollWindowEx non invalida l'area da cui viene eseguito lo scorrimento. Se uno di questi flag è impostato, ScrollWindowEx invalida questa area. L'area non viene aggiornata finché l'applicazione non chiama la funzione UpdateWindow , chiama la funzione RedrawWindow (specificando il flag RDW_UPDATENOW o RDW_ERASENOW) o recupera il messaggio WM_PAINT dalla coda dell'applicazione.
Se la finestra ha lo stile WS_CLIPCHILDREN , le aree restituite specificate da hrgnUpdate e prcUpdate rappresentano l'area totale della finestra a scorrimento che deve essere aggiornata, incluse tutte le aree nelle finestre figlio che richiedono l'aggiornamento.
Se viene specificato il flag di SW_SCROLLCHILDREN, il sistema non aggiorna correttamente la schermata se viene eseguito lo scorrimento di una finestra figlio. La parte della finestra figlio scorrevole che si trova all'esterno del rettangolo di origine non viene cancellata e non viene ridisegnata correttamente nella nuova destinazione. Per spostare le finestre figlio che non si trovano completamente all'interno del rettangolo specificato da prcScroll, usare la funzione DeferWindowPos . Il cursore viene riposizionato se il flag SW_SCROLLCHILDREN è impostato e il rettangolo del cursore interseca il rettangolo di scorrimento.
Tutte le coordinate di input e output (per prcScroll, prcClip, prcUpdate e hrgnUpdate) vengono determinate come coordinate client, indipendentemente dal fatto che la finestra abbia lo stile della classe CS_OWNDC o CS_CLASSDC . Usare le funzioni LPtoDP e DPtoLP per eseguire la conversione da e verso coordinate logiche, se necessario.
Esempio
Per un esempio, vedere Scorrimento del testo con il messaggio WM_PAINT.
Requisiti
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winuser.h (include Windows.h) |
Libreria | User32.lib |
DLL | User32.dll |
Set di API | ext-ms-win-ntuser-misc-l1-2-0 (introdotto in Windows 8.1) |
Vedi anche
Altre risorse