Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Дочерние окна в панели задач

6.4K
11 мая 2004 года
Goga
5 / / 11.05.2004
Здравствуйте!

Как сделать, чтобы дочерние окна были видны в панели задач, как главное окно приложения?
10
11 мая 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Goga
Как сделать, чтобы дочерние окна были видны в панели задач, как главное окно приложения?


При создании окна использовать флаг WS_EX_APPWINDOW.

6.7K
02 июня 2004 года
CaptHowdy
22 / / 01.06.2004
Цитата:
Originally posted by smartsoft

При создании окна использовать флаг WS_EX_APPWINDOW.


Уважаемый! Не подскажете ли каким образом сделать так, чтобы форма2 открывалась поверх основной формы, причем надо, чтобы форма открылась автоматом при создании основного окна. Каким образом указать координаты создаваемого окна, т.е. его местоположение на экране?

offtopicЯ начинающий в программировании под Windows. Около 4-х лет программировал встраиваемые системы под QNX. Там все было просто: каждое окно имело возможность установить вызов при открыти. В этом вызове прописывалось открытие нового окна. Как реализовать подобное в Windows?

Заранее благодарю за помощь.

P.S. Использую C++ Builder 6

7.4K
02 июня 2004 года
burashka
12 / / 02.06.2004
Нет ничего проще - в обработчике главной формы OnCreate (или OnShow смотря что конкретно надо) ставите:
TMyForm2 * MF2=new TMyForm2(this);
MF2->Top=xx;//выставляем отступ окна от верха экрана
MF2->Left=xx;//выставляем отступ окна от левого края экрана
далее можно выставить Width, Height, Transparency и т.д. :)))
в заключение
MF2->Show(); или MF2->ShowModal(); опять таки смотря чо конкретно надо.
Кому это форма подчиняется всегда можно поменять через пропертю Parent - подставив хендл родительского окна , если не ошибаюсь таким образом можно и в панель задач вынести формочку - если от эксплореровского окошка родить, но если и ошибаюсь то несильно - что-то подобное проделывал помойму без обращения к винапи(точно не помню):)
З.Ы. конструктор вначале - ессно по хотению опять таки, можно один раз создать и просто хайд\шоу делать, но обычно проще заново создавать и мочить потом
6.7K
03 июня 2004 года
CaptHowdy
22 / / 01.06.2004
Цитата:
Originally posted by burashka
Нет ничего проще - в обработчике главной формы OnCreate (или OnShow смотря что конкретно надо) ставите:
TMyForm2 * MF2=new TMyForm2(this);
MF2->Top=xx;//выставляем отступ окна от верха экрана
MF2->Left=xx;//выставляем отступ окна от левого края экрана
далее можно выставить Width, Height, Transparency и т.д. :)))
в заключение
MF2->Show(); или MF2->ShowModal(); опять таки смотря чо конкретно надо.
Кому это форма подчиняется всегда можно поменять через пропертю Parent - подставив хендл родительского окна , если не ошибаюсь таким образом можно и в панель задач вынести формочку - если от эксплореровского окошка родить, но если и ошибаюсь то несильно - что-то подобное проделывал помойму без обращения к винапи(точно не помню):)
З.Ы. конструктор вначале - ессно по хотению опять таки, можно один раз создать и просто хайд\шоу делать, но обычно проще заново создавать и мочить потом


Большое спасибо за помощь, но вот меня еще интересует такой вопрос: окна открываются, но они при потере фокуса (например нажимаем любую кнопку на основном окне) пропадают, т.е. уходят на задний план. Причем при открытии этих окон с начальной формы, они изначально уходят на задний план. Этого в моем случае быть не должно. В QNX я выставлял флажок Pt_WM_STATE_IS_FRONT - окошко всегда было поверх остальных окошек. Каким образом реализуется подобное в Windows?

Заранее благодарю.

6.7K
03 июня 2004 года
CaptHowdy
22 / / 01.06.2004
Цитата:
Originally posted by CaptHowdy
...при потере фокуса (например нажимаем любую кнопку на основном окне) пропадают...


Сам разобрался. :) Ситуация была в следующем: в билдере в свойствах основной формы (Properties) необходимо было выставить FormStyle в fsNormal. А на форме2 необходимо выставить этот флаг в значение fsStayOnTop. Все открывается как положено. И даже если я в основном окне нажимаю на кнопки, т.е. теряется фокус формы2, окно не пропадает, а остается на экране. :) Вот такое вот решение :D

У меня вот еще появился такой вопрос: в QNX я мог написать в вызове, например, от кнопки:

 
Код:
...
bool StatusOpenWindows;
...
if(!Status) return (Pt_CONTINUE);
else !Status;
...

тем самым завершалось выполнение этого вызова (на return (Pt_CONTINUE) ), причем код который лежит ниже не выполняется. Что либо подобное есть в Windows? Хочется сделать нечно вроде: нажимаем кнопку - открывается окно, при повторном нажатии на эту же кнопку закрывается окно.

Заранее благодарю!
7.4K
04 июня 2004 года
burashka
12 / / 02.06.2004
У меня вот еще появился такой вопрос: в QNX я мог написать в вызове, например, от кнопки:
 
Код:
...
bool StatusOpenWindows;
...
if(!Status) return (Pt_CONTINUE);
else !Status;
...

тем самым завершалось выполнение этого вызова (на return (Pt_CONTINUE) ), причем код который лежит ниже не выполняется. Что либо подобное есть в Windows? Хочется сделать нечно вроде: нажимаем кнопку - открывается окно, при повторном нажатии на эту же кнопку закрывается окно.

Заранее благодарю! [/QUOTE]

Не очень понял вопрос :) код как он приведён будет точно так же выполняться и в билдере - если нестатус то выход, если статус - то сделать его нестатусом. Я так понимаю вся соль в pt_continue - не понимаю какая именно соль :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог