IPointerInactive::OnInactiveSetCursor-Methode (ocidl.h)

Legt den Mauszeiger für ein inaktives Objekt fest. Diese Methode wird vom Container beim Empfang einer WM_SETCURSOR-Methode aufgerufen, wenn sich ein inaktives Objekt unter dem Mauszeiger befindet.

Syntax

HRESULT OnInactiveSetCursor(
  [in] LPCRECT pRectBounds,
  [in] LONG    x,
  [in] LONG    y,
  [in] DWORD   dwMouseMsg,
  [in] BOOL    fSetAlways
);

Parameter

[in] pRectBounds

Das objektgebundene Rechteck, das in Clientkoordinateneinheiten des enthaltenden Fensters angegeben ist. Dieser Parameter teilt dem Objekt seine genaue Position und Größe auf dem Bildschirm mit, als die WM_SETCURSOR Nachricht empfangen wurde. Dieser Wert wird in Einheiten des Koordinatensystems des Clients angegeben.

[in] x

Die horizontale Koordinate der Mausposition in Einheiten des enthaltenden Fensters des Clients.

[in] y

Die vertikale Koordinate der Mausposition in Einheiten des enthaltenden Fensters des Clients.

[in] dwMouseMsg

Der Bezeichner der Mausnachricht, für die ein WM_SETCURSOR aufgetreten ist.

[in] fSetAlways

Wenn dieser Wert TRUE ist, muss das Objekt den Cursor festlegen. wenn dieser Wert FALSE ist, ist das Objekt nicht verpflichtet, den Cursor festzulegen, und sollte in diesem Fall S_FALSE zurückgeben.

Rückgabewert

Diese Methode kann den Standardrückgabewert E_FAIL sowie die folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Der Mauszeiger wurde erfolgreich festgelegt.
S_FALSE
Das Objekt hat den Cursor nicht festgelegt. Der Container sollte entweder den Cursor festlegen oder das Objekt erneut aufrufen, wobei der Parameter fSetAlways auf TRUE festgelegt ist.

Hinweise

Der Container ruft diese Methode auf, um den Mauszeiger auf ein inaktives Objekt festzulegen, nachdem die Aktivierungsrichtlinie des Objekts überprüft wurde, indem die IPointerInactive::GetActivationPolicy-Methode aufgerufen wird. Wenn das Objekt nicht angefordert hat, durch diesen Aufruf an Ort und Stelle aktiviert zu werden, sendet der Container nachfolgende WM_SETCURSOR Nachrichten an das inaktive Objekt, indem OnInactiveSetCursor aufgerufen wird, solange der Mauszeiger auf dem Objekt bleibt.

Um Rundungsfehler zu vermeiden und die Aufgabe für die Objektimplementierung zu erleichtern, verwendet diese Methode Fensterkoordinaten in den Einheiten des enthaltenen Clientfensters, d. h. dem Fenster, in dem das Objekt angezeigt wird, anstelle der üblichen HIMETRIC-Einheiten . Daher können die gleichen Koordinaten und codepfade verwendet werden, wenn das Objekt aktiv und inaktiv ist. Die Fensterkoordinaten geben die Mausposition an. Das umgebende Rechteck wird auch im gleichen Koordinatensystem angegeben.

OnInactiveSetCursor verwendet einen zusätzlichen Parameter, fSetAlways, der angibt, ob das Objekt verpflichtet ist, den Cursor festzulegen oder nicht. Container sollten diese Methode zuerst mit diesem Parameter FALSE aufrufen. Das Objekt gibt möglicherweise S_FALSE zurück, um anzugeben, dass es den Cursor nicht festgelegt hat. In diesem Fall sollte der Container entweder den Cursor selbst festlegen oder, wenn er dies nicht möchte, die OnInactiveSetCursor-Methode erneut aufrufen, wobei fSetAlwaysTRUE ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile ocidl.h

Weitere Informationen

IPointerInactive