2008-11-07 16 views

Répondre

1

Vous ne pouvez pas. GetClassName() renvoie "ToolbarWindow32", le nom de classe du contrôle commun TOOLBAR standard. Attention, un système d'exploitation 64 bits en a deux. Ensuite, vous pouvez envoyer des messages comme TB_GETBUTTONINFO. Les principaux hang-ups sont que vous ne saurez pas quel ID de bouton choisir et les informations retournées n'incluent pas la position du bouton.

Ce qui est pour le mieux, les boutons se déplacent sans que vous puissiez les verrouiller.

+0

merci. Je m'en doutais. – AngryHacker

+3

https://github.com/rzhw/SuperNotifyIcon clairement fait cela. Je comprends qu'il n'a peut-être pas eu d'exposition lorsque cela a été répondu - mais il termine la tâche via des appels natifs comme vous le dites est impossible - ce qui fonctionne sur les anciennes versions de Windows. Il peut également le faire via une nouvelle API Windows 7. Un «je ne pense pas que tu peux» aurait été une meilleure réponse que «tu ne peux pas» - c'est un peu un rayon d'action. – caesay

+1

Donnez à l'auteur le mérite de ** ne pas ignorer la dernière phrase de mon message. Il l'a fait clairement en plaçant le code dans le dossier * Deprecated * et en utilisant des commentaires comme "Here be dragons". Vous pouvez ignorer le conseil, vous pouvez le réduire, ce qui ne rend pas facilement invalide. –

4

En fait, vous pouvez le faire, voici le code qui vous montre comment et beaucoup plus.

Dans n'importe quel événement Mouse de NotifyIcon, regardez simplement Control.MousePosition, qui contient le (x, y) de la souris. La même chose peut être faite pour positionner un ContextMenu sur un formulaire/contrôle exactement où le formulaire/contrôle a été cliqué en utilisant ces valeurs (x, y).

Un bon exemple de ces deux est ici:

Plus ici: http://code.msdn.microsoft.com/TheNotifyIconExample

2

Après un long voyage d'essais et d'erreurs, et le développement de mon propre icône Notify localisateur, j'ai développé un moyen de trouver la meilleure icône de position, jusqu'ici tout va bien, jusqu'à ce que j'ai vu ce projet étonnant par @zhwang SuperNotifyIcon. Ce projet a trois façons de localiser l'icône de notification, allant de l'inexact (comme mon propre développement) à l'utilisation de nouvelles dans Windows 7 API. C'est la réponse définitive.

Questions connexes