Condividi tramite


Metodo IDirectManipulationManager::RegisterHitTestTarget (directmanipulation.h)

Registra un thread dedicato per l'hit testing.

Sintassi

HRESULT RegisterHitTestTarget(
  [in]           HWND                            window,
  [in, optional] HWND                            hitTestWindow,
  [in]           DIRECTMANIPULATION_HITTEST_TYPE type
);

Parametri

[in] window

Handle della finestra principale dell'app (in genere creata dal thread dell'interfaccia utente).

[in, optional] hitTestWindow

Handle della finestra in cui viene registrato l'hit testing (deve essere creato dal thread di hit testing). Passare nullptr per annullare la registrazione di una destinazione hit test registrata in precedenza.

[in] type

Uno dei valori di DIRECTMANIPULATION_HITTEST_TYPE. Specifica se la finestra dell'interfaccia utente o la finestra di hit testing (o entrambi) riceve il hit testing WM_POINTERDOWN messaggio e in quale ordine.

Valore restituito

Se il metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

I test di hit test vengono in genere eseguiti nel thread dell'interfaccia utente dell'applicazione. L'applicazione riceve un messaggio WM_POINTERDOWN su cui viene eseguito l'hit testing. Se è necessaria una manipolazione, SetContact viene chiamato su uno o più viewport. Un'applicazione può usare il metodo RegisterHitTestTarget per delegare questa responsabilità di hit testing a un thread di hit testing separato.

Dopo aver registrato correttamente una destinazione di hit test dedicata, WM_POINTERDOWN messaggi vengono elaborati nel thread di hit testing. Se è necessaria una manipolazione, ad esempio la panoramica o lo zoom, setContact viene chiamato da questo thread.

Se SetContact non viene chiamato dal thread di hit testing, WM_POINTERDOWN messaggi possono essere elaborati nel thread dell'interfaccia utente, a seconda del DIRECTMANIPULATION_HITTEST_TYPE specificato durante la registrazione.

Se SetContact non viene chiamato dal thread di hit test o dal thread dell'interfaccia utente, la manipolazione diretta ignora l'input che viene quindi gestito nel thread dell'interfaccia utente.

Requisiti

   
Client minimo supportato Windows 8 [solo app desktop]
Server minimo supportato Windows Server 2012 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione directmanipulation.h

Vedi anche

IDirectManipulationManager