WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Ненормальная минимизация

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Ненормальная минимизация
Del опубликован 11-01-2002 09:42 MSK   Click Here to See the Profile for Del   Click Here to Email Del  
Написал я прогу которая разпахивает свою форму на весь экран (C++Builder5) и бордера не имеет. В FormClose запретил ей закрываться если не был введён пароль... Но! если кликнуть [Win]+D прога минимизируеться - как это вообше возможно, я ж ей бордер отрубил!!
Прога - форма с кнопками запуска игр (для игровухи).
ADK опубликован 11-01-2002 10:16 MSK     Click Here to See the Profile for ADK  Click Here to Email ADK     
Она не минимизируется, если бы нажал Win+M, ничего бы не было. Просто по Win+D система выносит рабочий стол поверх всех окон.
SUnteXx опубликован 11-01-2002 11:25 MSK     Click Here to See the Profile for SUnteXx  Click Here to Email SUnteXx     
2ADK:
Позволь с тобой не согласиться! Пасиба:) Я в проге делаю, чтобы при минимизации окно исчезало и показовалось в СисТрее! Так вот, при нажатии Вынь+D прога видна только в систрее! Мараль сей басни такова, что кучка зайцев пиз.. ой, сори, что что-то там у них неладное творится!)
ADK опубликован 11-01-2002 11:52 MSK     Click Here to See the Profile for ADK  Click Here to Email ADK     
Про трей не въехал. Он тут не при чём.
Del опубликован 11-01-2002 19:29 MSK     Click Here to See the Profile for Del  Click Here to Email Del     
Минимизируется ещё и как! Аккуратненько так сворачиваеться в taskbar.
SUnteXx опубликован 12-01-2002 12:14 MSK     Click Here to See the Profile for SUnteXx  Click Here to Email SUnteXx     
2Del:
Я про то же!
SUnteXx опубликован 12-01-2002 12:53 MSK     Click Here to See the Profile for SUnteXx  Click Here to Email SUnteXx     
2ADK:
Про трей я к тому, что в трей прога помещается, когда идет мессага WM_SIZE с параметром wParam == SIZE_MINIMIZED! Так что проги минимизируются, но сама минимизация не показывается (т.е. не показывается плавное минимизирование окна!). Вот я к чему:)
Del опубликован 14-01-2002 10:40 MSK     Click Here to See the Profile for Del  Click Here to Email Del     
Так всё-таки у кого-нибудб есть какие-нибудь конструктивные (или деструктивные) но мысли! по поводу [Win]+D ? Сколько уже в этом форуме сижу - большаяя часть народа знает намного больше меня, неужели никто не знает что это за фигня?
stan опубликован 14-01-2002 13:18 MSK     Click Here to See the Profile for stan  Click Here to Email stan     
Насколько я понимаю, Виндам пофиг, что ты запретил сворачивать окошко. В W2K сворачиваются все (или почти все окна), даже если они висят или не хотят сворачиваться. Там даже параметр у функции ShowWindow есть, SW_FORCEMINIMIZE называется. По ходу дела, окошко в этом случае не сворачивается, только если оно Always on top.
SUnteXx опубликован 14-01-2002 17:28 MSK     Click Here to See the Profile for SUnteXx  Click Here to Email SUnteXx     
2stan:
Небольшое добавление. Если окно TOPMOST и оно показывается в таскбаре, то оно все равно свернеться! Не свернется только то окно, которое TOPMOST и которое не видно в таскбаре:(
Del опубликован 14-01-2002 18:57 MSK     Click Here to See the Profile for Del  Click Here to Email Del     
Просветите плз - чё такое TOPMOST и как сделать чтоб окна не было видно в таскбаре (юзаю registerserviceprocess, но в таскбаре прога есть).
SUnteXx опубликован 15-01-2002 12:57 MSK     Click Here to See the Profile for SUnteXx  Click Here to Email SUnteXx     
TOPMOST - всегда сверху. Попробуй вначале вызвать эту ф-цию:

SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);

А потом посмотри эту:

SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);

Сам все поймешь!)

А для таскбара делай следующее (я так делаю, по-другому не знаю как):

1) Создай родителя со стилем WS_EX_TOOLWINDOW

2) Скрой родителя.
ShowWindow(hWndParent, SW_HIDE);

3) Создай главное окно и поставь ему этого "скрытого" родителя и все будет в шоколаде:)

Del опубликован 16-01-2002 14:40 MSK     Click Here to See the Profile for Del  Click Here to Email Del     
>> 1) Создай родителя со стилем WS_EX_TOOLWINDOW

Не врубаюсь... Я вообше на Билдере пишу... Объясни поподробнее плз.

michl_m опубликован 16-01-2002 15:18 MSK     Click Here to See the Profile for michl_m  Click Here to Email michl_m     
2SUnteXx:
Со скрытым родителем ты прикольно придумал.
Хороший трюк, спасибо. Воспользуюсь.
SUnteXx опубликован 17-01-2002 02:21 MSK     Click Here to See the Profile for SUnteXx  Click Here to Email SUnteXx     
2Del:
WS_EX_TOOLWINDOW - стиль окна, которое не показывается в Taskbar'e.

Еще есть вопросы? Можешь задавать на SUnteXx@pisem.net

SUnteXx опубликован 17-01-2002 12:26 MSK     Click Here to See the Profile for SUnteXx  Click Here to Email SUnteXx     
Попутно вопрос, как можно определить номер кнопки моего окна в TaskBar'e? Пробовал по тексту окна, текста не дает, пробовал по тексту тултипа - них не получилось. Может у кого идеи есть?

Просто тогда станет легко убирать окно из таскбара:

SendMessage(hWndTaskBar, TB_HIDEBUTTON, ButtonID, bShowInTaskBar);

Пробовал - работает, осталось определить номер батона!

Del опубликован 20-01-2002 15:51 MSK     Click Here to See the Profile for Del  Click Here to Email Del     
2SUnteXx ::
//****
1) Создай родителя со стилем WS_EX_TOOLWINDOW

2) Скрой родителя.
ShowWindow(hWndParent, SW_HIDE);

3) Создай главное окно и поставь ему этого "скрытого" родителя и все будет в шоколаде:)
****//
Как это сделать?! Объясни пожалуйста, если не влом напиши кусок кода...

SUnteXx опубликован 21-01-2002 12:39 MSK     Click Here to See the Profile for SUnteXx  Click Here to Email SUnteXx     
Если на MVC++ на АПИ, то завтра кину, время щаззз нету. Кину на мыло или сюда:( Если на чем-то другом, то это не ко мне:)
Del опубликован 21-01-2002 12:31 MSK     Click Here to See the Profile for Del  Click Here to Email Del     
Нет, на BC++Builder. Если кто-то знает как - напишите пожалуста!!!
SUnteXx опубликован 21-01-2002 14:46 MSK     Click Here to See the Profile for SUnteXx  Click Here to Email SUnteXx     
:(
Del опубликован 22-01-2002 16:58 MSK     Click Here to See the Profile for Del  Click Here to Email Del     
Так всё таки неужели никто не знает как это под Билдером сделать?
frostbitten опубликован 25-01-2002 05:48 MSK     Click Here to See the Profile for frostbitten  Click Here to Email frostbitten     
А под билдером. Кроме формы есть еще одно окно. Вот для формы ты запретил, а в таскбаре торчит-то не оно, а др... Это старая история кот. я не помню уже... Но именно благодаря этому ты можешь свернуть форму, а можешь приожение - в VC это синонимы, а вот в билде нет.

Там можно как-то было получить хандл. этого скрытого (с глаз, а не HIDE) окна и с ним уже поиграть... половить WM_SYSCOMMAND например.

А TOPMOST это Form1->FormStyle(fsStayOnTop /* но на счет канстанты не уверен*/)...

One опубликован 25-01-2002 13:03 MSK     Click Here to See the Profile for One  Click Here to Email One     
2frostbitten:
Не мути воду. В билдере все окна (формы) создаются дочерними для Application, его дискрептор Application->Handle, и не надо ни каких заморочек.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.