Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Активация/деактивация окна кнопками на панели зада 
V
    Опции темы
Paspartu
Дата 16.7.2008, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 3.5.2007

Репутация: нет
Всего: нет



Поможите, седею…
Делаю свое окно…
Активация/деактивация окна кнопками на панели задач...

Вопрос… К примеру на Win XP запустили «блокнот» появился блокнот, на панели задач с низу у нас появилась утопленная кнопка «Безымянный - Блокнот» все OK, кликнули по кнопке – окно свернулась кнопка на панели задач деактивизировалась – тоже все хорошо, вопрос в том что шлется  в этот момент в оконную процедуру? т.к. здесь важен именно первый запуск приложения потому что если ловить спаем то уже приходит WM_ACTIVATEAPP и алгоритм сбивается… пробую ловить WM_ACTIVATE и WM_ACTIVATEAPP… breakpoint поставить в этом случае нельзя, ставлю Beep() причем независимо от параметров активно/деактивно, так вот чудеса… запустили приложение(первый раз) появилась окошко пару раз пробикало акно активизировалось, внизу, на панели задач появилась кнопочка все OK… Но!!! по идее при повторном на нее нажатии также как и у «блокнота» окно должно свернуться, по крайней мере ему должно послаться WM_ACTIVATE чтобы деактивизировать окно, а этого не происходит! Нет ни одного Beep-а ни на WM_ACTIVATE, ни на WM_ACTIVATEAPP, а кнопочка гаснет т.е. деактивизируется… все… мол, типа я свою работу выполнила и т.д. с-ка! Как с этим бороться… что должно послаться окну, когда оно активно при нажатии на кнопку на панели задач?

PM MAIL   Вверх
Dem_max
Дата 17.7.2008, 04:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 16
Всего: 39



Точно не скажу возможно WM_SYSCOMMAND а там параметры:
Parameters
wParam
Specifies the type of system command requested. This parameter can be one of the following values. 
SC_CLOSE
Closes the window.
SC_CONTEXTHELP
Changes the cursor to a question mark with a pointer. If the user then clicks a control in the dialog box, the control receives a WM_HELP message.
SC_DEFAULT
Selects the default item; the user double-clicked the window menu.
SC_HOTKEY
Activates the window associated with the application-specified hot key. The lParam parameter identifies the window to activate.
SC_HSCROLL
Scrolls horizontally.
SC_KEYMENU
Retrieves the window menu as a result of a keystroke. For more information, see the Remarks section.
SC_MAXIMIZE
Maximizes the window.
SC_MINIMIZE
Minimizes the window.
SC_MONITORPOWER
Sets the state of the display. This command supports devices that have power-saving features, such as a battery-powered personal computer. 

The lParam parameter can have the following values:

1 - the display is going to low power

2 - the display is being shut off
SC_MOUSEMENU
Retrieves the window menu as a result of a mouse click.
SC_MOVE
Moves the window.
SC_NEXTWINDOW
Moves to the next window.
SC_PREVWINDOW
Moves to the previous window.
SC_RESTORE
Restores the window to its normal position and size.
SC_SCREENSAVE
Executes the screen saver application specified in the [boot] section of the System.ini file.
SC_SIZE
Sizes the window.
SC_TASKLIST
Activates the Start menu.
SC_VSCROLL
Scrolls vertically.


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Paspartu
Дата 18.7.2008, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 3.5.2007

Репутация: нет
Всего: нет



Сделал через SetWindowPlacement()...

Добавлено через 2 минуты и 9 секунд
To Dem_max, спасибо за участие, плюсик пока поставить не могу, я тут совсем недавно... smile 
PM MAIL   Вверх
Dem_max
Дата 18.7.2008, 04:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 16
Всего: 39



Хм. Спрашивал одно, а сделал свосем другое.


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0412 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.