Windows Mobile 6.1 - элемент управления .NET CF StatusBar - значок встраивания - PullRequest
3 голосов
/ 04 октября 2010

Можно ли вставить значок в элемент управления StatusBar в .NET CF 3.5?

1 Ответ

3 голосов
/ 04 октября 2010

Элемент управления Compact Framework StatusBar очень, очень простой и ограниченный по функциональности. Он не поддерживает добавление изображений или даже нескольких панелей. Частично это связано с ленью команды CF (IMO) и частично из-за ограничений ОС.

Общее управление строкой состояния ОС поддерживает до 255 панелей. Команда CF не допускала более одного. Это чистая лень, но, по крайней мере, вы можете обойти это, разделив его на подклассы и отправив ему сообщение SB_SETPARTS. Чтобы все это заработало, потребовалось бы значительное количество P / Invoking, поэтому, если вам это действительно не нужно, я бы избежал этого.

Изображения, однако, даже не поддерживаются в собственном элементе управления. Вполне возможно, что вы можете создать его подкласс, а затем сами обработать WM_PAINT и нарисовать свой значок. Я не пробовал, но это кажется разумным подходом. Для этого также потребуется немало уродливых нативных вызовов для всего GDI. Это может привести к утечкам памяти или нарушениям доступа, поэтому, если вам это действительно не нужно и вы не довольны старой доброй Win32-живописью, вы можете попытаться найти альтернативное решение, прежде чем принять решение по этому маршруту.

...