Frage

Ich habe eine NotifyIcon Steuerelement, das in der Taskleiste angezeigt. Wie kann ich die Position (x, y) des Symbols auf dem Bildschirm finden?

Danke

War es hilfreich?

Lösung

Sie können nicht. Es ist nicht schwer das Fenster-Handle für die Taskleiste, GetClassName () gibt „ToolbarWindow32“, die Klassennamen der Standard-Symbolleiste gemeinsamen Kontrolle zu bekommen. Hüten Sie sich vor, dass ein 64-Bit-Betriebssystem zwei von ihnen hat. Dann können Sie Nachrichten, um es wie TB_GETBUTTONINFO senden. Chief hang-ups sind, dass Sie nicht wissen, welche ID-Taste zu wählen und die zurückgegebene Informationen auf die Schaltfläche Position nicht enthalten.

, die für die besser ist, Tasten bewegen, ohne dass Sie sie in der Lage zu sperren.

Andere Tipps

Eigentlich können Sie dies tun, hier Code, der Ihnen zeigt, wie und vieles mehr.

In jedem Mausereignis aus NotifyIcon, einfach auf Control.MousePosition suchen, diese enthält die (x, y) der Maus. Das gleiche kann getan werden, um eine ContextMenu auf einem Formular / Kontrolle zu positionieren, wo genau die Form / Steuerelement geklickt wurde unter Verwendung dieser (x, y) Werten.

Ein gutes Beispiel für diese beiden ist hier:

Mehr hier: http://code.msdn.microsoft.com/TheNotifyIconExample

Nach einer langen Reise von Versuch und Irrtum, und die Entwicklung meiner eigenen Symbol-Locator benachrichtigen, entwickelte ich eine Art und Weise, die beste Position Symbol zu finden, so weit so gut, bis ich durch @zhwang dieses erstaunliche Projekt sah SuperNotifyIcon . Dieses Projekt hat drei Möglichkeiten, das Symbol im Infobereich, die von der ungenau (wie meine eigenen Entwicklung) auf die Verwendung von neuen in Windows 7 API zu lokalisieren. Dies ist die definitive Antwort.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top