Code pour l'extension du menu principal NETCF pour prendre en charge la propriété de couleur d'arrière-plan

StackOverflow https://stackoverflow.com/questions/164915

  •  03-07-2019
  •  | 
  •  

Question

J'ai cherché la solution pour changer la couleur d'arrière-plan du contrôle MainMenu du Compact Framework, et la seule réponse que j'ai trouvée est la nécessité de créer un contrôle personnalisé. Quelqu'un a-t-il un exemple de code pour cela?

Était-ce utile?

La solution

Il n’ya aucun moyen de le faire.
Vous avez probablement besoin de créer votre propre contrôle.

C’était quelque chose que j’envisageais de toute façon de faire pour que l’application fonctionne sous Windows CE et Windows Mobile.
Le problème avec l'ajout de menus lorsque l'application doit fonctionner avec les deux, c'est que le menu s'affiche en haut de l'écran sous Windows CE et couvre les contrôles éventuels.
Ce serait moins compliqué à long terme que de créer un nouveau contrôle.

Autres conseils

J'ai fait quelque chose de vaguement similaire où je voulais gérer le message WM_EXITMENULOOP qui n'était pas disponible en tant qu'événement dans .NETCF.

La solution consistait à "sous-classer" le menu principal, une vieille astuce MFC dans laquelle vous remplacez la fonction WndProc par la vôtre, gérez tous les messages Windows (WM_EXITMENULOOP dans mon cas) et appelez la classe de base WndProc pour tout le reste.

Un exemple de code est disponible sur le blog d'Alex Yakhnin pour savoir comment sous-classer un contrôle: Exemple de sous-classement d'une fenêtre dans .NETCF

Dans votre cas, vous sous-classeriez le formulaire contenant le menu principal et je pense que WM_DRAWITEM serait le message Windows que vous voudriez gérer vous-même. Je n'ai pas essayé de changer la couleur de fond moi-même, donc je ne suis pas tout à fait sûr que cela fonctionnera, mais le sous-classement serait le point de départ.

J'ai essayé de faire quelque chose de similaire il y a quelque temps et j'ai découvert que vous deviez écrire votre propre menu. essentiellement à partir de zéro. J'ai abandonné parce que le projet sur lequel je travaillais ne pouvait pas payer la dépense. J'ai également découvert que OpenNETCF possédait un contrôle de menu assez impressionnant. Je ne sais pas s'il est inclus dans leur logiciel libre, mais cela vaut peut-être la peine d'être examiné.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top