StatusBar в приложении на основе Top Level Form.
Просматривая после отпуска материалы конференции, наткнулся на обсуждение возможности отобразить стандартный StatusBar в приложении на основе Top Level Form. На тот момент я был полностью уверен в невозможности такого переноса, тем более, что в свое время вынужден был использовать соответствующий ActiveX. Однако один из участников обсуждения упомянул программы автора Владимира Яйленко (http://yvs.makeevka.com:8101/index.htm), в которых вроде бы стандартный StatusBar мирно уживается с Top Level Form. Хотя при ближайшем рассмотрении все весьма достойные приложения Владимира Яйленко оказались выполненными с использованием Screen’а, решил вернуться к прошлым опытам. Тем более, что само по себе, переназначение родителя для некоторого дочернего окна - операция тривиальная. Сложнее было догадаться, как обойти нежелание Fox’а обновлять состояние StatusBar’а при значении _Screen.Visible=.f. К счастью оказалось, что Fox как обычно больше верит себе, чем операционной системе. Поэтому оказалось достаточным после манипуляций по переносу окна StatusBar’а в заранее созданную панель инструментов встроенную в Top Level Form, установить флажок _Screen.Visible=.t. и скрыть основное окно Fox’а с помощью API-функции ShowWindow().
Пример представлен в виде законченного проекта. Необходимо собрать исполняемый EXE-модуль, который запустить с помощью команды Выполнить... из меню на кнопке Пуск.
Модуль тестировался под управлением Windows 98SE(VFP6SP5,VFP7)
Вложенные файлы
# |
Название |
Тип файла |
Размер |
---|---|---|---|
1 | 256SBInTLF | .zip | 10,26 КБ |