Код для расширения NETCF MainMenu для поддержки свойства цвета фона

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

  •  03-07-2019
  •  | 
  •  

Вопрос

Я искал решение для изменения цвета фона в элементе управления MainMenu Compact Framework, и единственный ответ, который я нашел, заключается в том, что вам нужно создать пользовательский элемент управления. У кого-нибудь есть пример кода для этого?

Это было полезно?

Решение

Нет способа сделать это.
Ваше право в том, что вам, вероятно, потребуется создать свой собственный элемент управления.

В любом случае я собирался сделать это, чтобы приложение работало на Windows CE и Windows Mobile.
Проблема с добавлением меню, когда приложение должно работать с обоими, состоит в том, что меню переходит в верхнюю часть экрана в Windows CE и охватывает все элементы управления, которые могут быть там.
В долгосрочной перспективе было бы меньше хлопот, просто создайте новый элемент управления.

Другие советы

Я сделал нечто похожее, когда хотел обработать сообщение WM_EXITMENULOOP, которое не было доступно как событие в .NETCF.

Решением было "подкласс" Главное меню, старый трюк MFC, где вы заменяете функцию WndProc своей собственной, обрабатывает любые сообщения Windows (в моем случае WM_EXITMENULOOP) и вызывает базовый класс WndProc для всего остального.

В блоге Алекса Яхнина есть пример кода о том, как создать подкласс для элемента управления: Пример создания подкласса окна в .NETCF

В вашем случае вы на самом деле делите на подклассы форму, в которой находится MainMenu, и я думаю, что WM_DRAWITEM будет сообщением Windows, которое вы захотите обработать самостоятельно. Я сам не пытался изменить цвет фона, поэтому не совсем уверен, что это сработает, но я бы начал с создания подклассов.

Некоторое время назад я пытался сделать нечто подобное и обнаружил, что вам нужно написать свое собственное меню; по сути с нуля. Я сдался, потому что проект, над которым я работал, не мог позволить себе расходы. Я также обнаружил, что OpenNETCF имеет довольно крутой элемент управления меню. Я не знаю, включено ли это в их бесплатное программное обеспечение, но, возможно, стоит посмотреть.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top