Как запустить автоматическое скрытие на панели задач в WindowsCE - PullRequest
0 голосов
/ 10 марта 2010

я пишу программу на C # для устройства Windowsce 5.0 (PSION Teklogix Workabout Pro G2).

Панель задач настроена на автоматическое скрытие. Я не могу полностью отключить его, потому что пользователю иногда требуется доступ к меню «Пуск» или он может вручную показать или скрыть SIP. И он не должен отображаться постоянно, потому что я хотел бы использовать как можно больше маленьких дисплеев.

Моя проблема: Когда панель задач свернута в нижней части экрана, и пользователь нажимает на нее где-то (не на кнопку стартового меню), она скользит и отображается правильно. Но если пользователь не активирует стартовое меню (нажав на логотип Windows), панель задач больше не выскользнет, ​​если только стартовое меню не было открыто один раз.

Есть ли что-то похожее на событие или что-то подобное, что я мог бы отправить на панель задач, чтобы она снова скрывалась, не открывая пользователю доступ к стартовому меню?

1 Ответ

0 голосов
/ 22 марта 2010

То, как я делал это в прошлом, предполагая, что вы имеете в виду vanilla ce (стандартная оболочка), это захватить дескриптор HHTaskBar и просто спрятать его;)

Я также отключаю SipWndClass (на случай, если клавиатура оставлена ​​открытой).

Где iEnabled = true (введите в полноэкранном режиме) или false, чтобы показать HHTaskBar: -

        HWND hWndToHide = FindWindow(_T("HHTaskBar"), NULL);
        if(hWndToHide) {
            if(iEnabled) {
                    // Disable VanillaCE TaskBar
                if(IsWindowVisible(hWndToHide))
                    ShowWindow(hWndToHide, SW_HIDE);            

                    // Disable SIPWnd (On Screen Keyboard).
                hWndToHide = FindWindow(_T("SipWndClass"), NULL);
                if(hWndToHide && IsWindowVisible(hWndToHide))
                    ShowWindow(hWndToHide, SW_HIDE);            
            }
            else {
                    // Enable VanillaCE TaskBar
                if(!IsWindowVisible(hWndToHide))
                    ShowWindow(hWndToHide, SW_SHOW); 
            }               
        }   

Не должно быть слишком сложно перевести это на .NET;)

...