Metodo IOleInPlaceSiteWindowless::ScrollRect (ocidl.h)
Consente a un oggetto di scorrere un'area nella propria immagine attiva in posizione sullo schermo.
Sintassi
HRESULT ScrollRect(
[in] INT dx,
[in] INT dy,
[in] LPCRECT pRectScroll,
[in] LPCRECT pRectClip
);
Parametri
[in] dx
Quantità di scorrimento dell'asse x.
[in] dy
Quantità di scorrimento dell'asse y.
[in] pRectScroll
Rettangolo da scorrere, nelle coordinate client della finestra contenitore. Un valore NULL indica l'oggetto completo.
[in] pRectClip
Rettangolo da ritagliare. Solo i pixel che scorrono nel rettangolo vengono disegnati. I pixel che scorrono esternamente non vengono disegnati. Se questo parametro è NULL, il rettangolo non viene ritagliato.
Valore restituito
Questo metodo restituisce S_OK se l'operazione ha esito positivo.
Commenti
Questo metodo deve tenere conto del fatto che il chiamante può essere trasparente e che potrebbero esserci oggetti opachi o trasparenti sovrapposti. Per suggerimenti su algoritmi che questo metodo può usare, vedere Note per gli implementatori di seguito.
Note per gli implementatori
I contenitori possono implementare questo metodo in diversi modi. Tuttavia, tutti devono tenere conto della possibilità che l'oggetto che richiede lo scorrimento possa essere trasparente o non avere uno sfondo solido. I contenitori devono anche tenere presente che potrebbero essere presenti oggetti sovrapposti.Il modo più semplice per implementare questo metodo consiste nel ridisegnare semplicemente il rettangolo per scorrere.
Un miglioramento aggiunto a questa semplice implementazione consiste nell'usare la funzione ScrollDC quando l'oggetto che richiede lo scorrimento è opaco, l'oggetto ha uno sfondo solido e non sono presenti oggetti sovrapposti.
Le implementazioni più sofisticate possono usare la procedura seguente:
- Controllare se l'oggetto è opaco e ha uno sfondo solido, usando IViewObjectEx::GetViewStatus. In caso contrario, invalidare semplicemente il rettangolo per scorrere. Un ulteriore perfezionamento consiste nel verificare se il rettangolo di scorrimento si trova interamente nell'area opaca di un oggetto parzialmente trasparente.
- Ottenere il contesto del dispositivo della finestra.
- Ritaglia le parti opache di qualsiasi oggetto sovrapposto restituito da IViewObjectEx::GetRect.
- Chiamare infine la funzione ScrollDC .
- Ridisegnare le parti trasparenti precedentemente invalidate di qualsiasi oggetto sovrapposto.
Tutti i ridisegni generati da questo metodo devono verificarsi in modo sincrono prima che questo metodo restituisca.
Questo metodo deve nascondere automaticamente il cursore durante l'operazione di scorrimento e deve spostare il cursore in base agli importi di scorrimento se si trova all'interno del rettangolo di ritaglio.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | ocidl.h |