FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9176
Вход
StatusBar в приложении на основе Top Level Form.

Пример переноса стандартного StatusBar'а в приложение выполненное на основе Top Level Form.


 
Прислал: Ившев Дмитрий   Категория: Интерфейс


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)
 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (4.96) Вложение [10.26]kb
Дополнения пользователей
StatusBar в приложении на основе Top Level Form.
[+][?]
Радченко Виктор Вадимович
11.02.05 07:44:46

А что если пpименить BINDEVENT(hWnd,nMessage,oEventHandler,cDelegate)?
hWnd - хэндл окна статусбаpа, полученный методом Дмитрия.
nMessage - некое виндовое сообщение WM_тpатата, пpи котоpом
окно скpинового тулбаpа собственно и отобpажает внутpи себя текст.
Далее понятно... Будет ли такое pаботать для TopLevelForm ?
Методом тыка подобpать WM_тpатата, у меня не получилось :(
Все это надо (таймеp или пеpенос окна), как я понимаю,не от хоpошей жизни.
Hет способа забиндиться на Application.StatusBar_assign().

Влад Колосов
28.11.05 11:44:50

Нельзя ли в нескольких словах объяснить механизм перехвата и отображения сообщений message? Я не
слишком силен в системном программировании, но пример хотелось бы понять.
Влад Колосов
28.11.05 11:57:24

Нельзя ли в нескольких словах объяснить механизм перехвата и отображения сообщений message? Я не
слишком силен в системном программировании, но пример хотелось бы понять.
Влад Колосов
28.11.05 11:57:32

Нельзя ли в нескольких словах объяснить механизм перехвата и отображения сообщений message? Я не
слишком силен в системном программировании, но пример хотелось бы понять.
[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика