Переключение между видимыми приложениями в Windows CE 5, Lang: C ++ - PullRequest
1 голос
/ 03 ноября 2008

Я опытный специалист по встроенному программированию, но новичок в CE и у меня много трудностей, связанных с выполнением достаточно простых вещей, потому что я не знаком с API и пытаюсь понять неясные документы MSDN.

Все, что я хочу сделать, - это свернуть и развернуть два отдельных приложения, запущенных из одного из приложений.

например. Приложение A решает, что теперь пришло время для его появления, а затем минимизирует приложение B (приложение B является сторонним приложением, например, Блокнот, нет доступа к исходному коду и т. Д.), А затем на более поздней стадии максимизирует B и минимизирует себя.

Заявка А будет написана мной самостоятельно.

Я уверен, что это должно быть очень просто, но где найти ответы ..:)

Заранее спасибо. ВЗ

Ответы [ 2 ]

1 голос
/ 03 ноября 2008

Во-первых, вам нужно найти дескриптор окна (hwnd), используя API-функцию FindWindow или другие альтернативные средства. Затем используйте API-функцию ShowWindow , указав SW_HIDE или SW_SHOW , чтобы скрыть или показать окно соответственно. Обратите внимание, что Windows CE 5.0 технически не поддерживает состояния окна Win32, такие как SW_MINIMIZE, SW_MAXIMIZE и т. Д.

Простой пример:

HWND hWnd = ::FindWindow( _T("Notepad"), NULL); 
::ShowWindow(hWnd, SW_HIDE); 
0 голосов
/ 06 ноября 2008

Вы также можете найти полезными SetForegroundWindow и SetWindowPos.

Вот как я использовал их, чтобы показать и скрыть приложения:

SetWindowPos(windowToHide, 0, 0, 0, 0, 0, SWP_HIDEWINDOW);
SetWindowPos(windowToShowInFullScreen, HWND_TOP, 0, 0, 240, 320, SWP_SHOWWINDOW);
SetForegroundWindow(windowToShow);
...