Форум программистов, компьютерный форум CyberForum.ru

Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 70, средняя оценка - 4.73
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,602
Записей в блоге: 17
06.05.2012, 22:50     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #1
Что происходит при нажатии этой кнопки в плане сообщениий, и как их перехватить и игнорировать,что бы окно не сворачивалось?
Чем это событие отличается от обычного сворачивания окна через кнопку свернуть ?
Календарик на рабочий стол в C++/WinAPI
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2012, 22:50     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна"
Посмотрите здесь:

как кинуть messagebox и при этом все остановить все события основного окна C++
C++ API: востановление "чужого" окна из min
C++ Необработанное исключение в "0x01082855" в "sort.exe": 0xC0000005: Нарушение прав доступа при записи "0xcccccccc"
Как сделать чтобы при нажатии на кнопку "PlayWarcraft" заходил на мой сервер через IP adress C++
C++ Ошибка с массивом: программа при вводе "ступорится" при нажатии клавиши Enter
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,602
Записей в блоге: 17
07.05.2012, 02:02  [ТС]     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #21
Пытался анализировать что происходит с окном во время такого сворачивания с помощью Spy, но чет не доганяю что проиходит
То что выдал Spy
// Прога N1
WM_WINDOWPOSCHANGING lpwp:000E1448
WM_GETMINMAXINFO lpmmi:000DFDA4
WM_GETMINMAXINFO lpmmi:000DFEBC
WM_WINDOWPOSCHANGING
WM_NCCALCSIZE fCalcValidRects:True lpncsp:000E13E8
WM_NCCALCSIZE fuValidRect:0000 lpncsp:000E1528
WM_WINDOWPOSCHANGED lpwp:000E1448
WM_MOVE xPos:33536 yPos:33536
WM_MOVE
WM_SIZE fwSizeType:SIZE_MINIMIZED nWidth:0 nHeight:0 // 1 !!!
WM_NOTIFY idCtrl:0 pnmh:000DE334
WM_NOTIFY
WM_SIZE
WM_WINDOWPOSCHANGED
// Прога N2
WM_MOVE xPos:33536 yPos:33536
WM_MOVE
WM_SIZE fwSizeType:SIZE_MINIMIZED nWidth:0 nHeight:0 // 1 !!!
WM_WINDOWPOSCHANGING lpwp:0012F3A8
WM_GETMINMAXINFO lpmmi:0012EDE0
WM_GETMINMAXINFO lpmmi:0012EDE0
WM_WINDOWPOSCHANGING
WM_SHOWWINDOW fShow:False fuStatus:0 (был вызван элемент ShowWindow)
WM_SHOWWINDOW
WM_WINDOWPOSCHANGING lpwp:0012F04C
WM_WINDOWPOSCHANGING
WM_WINDOWPOSCHANGED lpwp:0012F04C
WM_WINDOWPOSCHANGED
WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0012F2CC
WM_STYLECHANGING
WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0012F2CC
WM_STYLECHANGED
WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0012F348
WM_STYLECHANGING
WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0012F348
WM_STYLECHANGED
WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0012F348
WM_STYLECHANGING
WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0012F348
WM_STYLECHANGED
WM_SIZE
WM_WINDOWPOSCHANGED
// Прога N3
WM_WINDOWPOSCHANGING lpwp:0839F370
WM_GETMINMAXINFO lpmmi:0839F0A0
WM_GETMINMAXINFO lpmmi:0839F218
WM_WINDOWPOSCHANGING
WM_NCCALCSIZE fCalcValidRects:True lpncsp:0839F310
WM_NCCALCSIZE fuValidRect:0000 lpncsp:0839F4B0
WM_WINDOWPOSCHANGED lpwp:0839F370
WM_MOVE xPos:33536 yPos:33536
WM_MOVE
WM_SIZE fwSizeType:SIZE_MINIMIZED nWidth:0 nHeight:0
WM_SIZE
WM_WINDOWPOSCHANGED
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
07.05.2012, 02:03     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #22
Цитата Сообщение от Toshkarik Посмотреть сообщение
Про гаджеты я имел ввиду, что ими управляет процесс/служба. Они не являются отдельными простыми оконными приложениями.
вот именно управляет , а всё управление сводится к тому , что бы поставить определённый гаджет , а дальше всю работу делает самостаятельное окно !!!
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
07.05.2012, 02:05     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #23
Нет у гаджета самостоятельного окна, как и у процесса/службы. sidebar "встраивается" в рабочий стол. Это что вроде старого active desktop.
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
07.05.2012, 02:10     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #24
Цитата Сообщение от Toshkarik Посмотреть сообщение
Нет у гаджета самостоятельного окна
а я вам говорю , что есть и программа полностью в ответе за свою окно.

Добавлено через 2 минуты
Цитата Сообщение от Toshkarik Посмотреть сообщение
"встраивается"
это как это оно встраивается????????????
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
07.05.2012, 02:11     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #25
Ну так можно спорить бесконечно, переубеждать Вас не буду, так как недостаточно пока знаний winapi, пусть каждый останется при своем мнении.

Добавлено через 43 секунды
Цитата Сообщение от Игорь с++ Посмотреть сообщение
это как это оно встраивается
Так же как и active desktop.
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
07.05.2012, 02:14     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #26
Цитата Сообщение от Toshkarik Посмотреть сообщение
Ну так можно спорить бесконечно, переубеждать Вас не буду, так как недостаточно пока знаний winapi, пусть каждый останется при своем мнении.
Ок!!!
Просто не охото в столь поздний час лазить по инету и кидать ссылку с информацией.

Добавлено через 1 минуту
Цитата Сообщение от Toshkarik Посмотреть сообщение
Так же как и active desktop.
ну так всраивание как вы говорите тоже и там нет.
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,602
Записей в блоге: 17
07.05.2012, 02:14  [ТС]     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #27
Проверил код действительно работает нормально, спасибо!
Навсякий добавил

C++
1
2
3
4
5
6
7
case WM_SIZE:
if(wParam==SIZE_MINIMIZED) // это
  {  
   SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 1, 1, SWP_NOMOVE | SWP_NOSIZE);
   ShowWindow(hWnd,SW_SHOWNORMAL);
  }
break
(Поначалу необратил внимание на флаги SWP_NOMOVE | SWP_NOSIZE)
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
07.05.2012, 02:16     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #28
Цитата Сообщение от Игорь с++ Посмотреть сообщение
ну так всраивание как вы говорите тоже и там нет.
А что там по Вашему там же запускалось отдельное приложение со своим окном?
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,602
Записей в блоге: 17
07.05.2012, 02:20  [ТС]     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #29
Нет у гаджета самостоятельного окна, как и у процесса/службы. sidebar "встраивается" в рабочий стол
Ну если судить по cкринам то есть... Или чего то не понимаю...
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
07.05.2012, 02:28     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #30
Цитата Сообщение от Avazart Посмотреть сообщение
Ну если судить по кринам то есть... Или чего то не понимаю...
Вы наверно не правильно поняли меня. Гаджет - это не отдельное приложение. Гаджетами управляет sidebar. Кнопки закрыть и настроить, как я считаю, никак не относятся к кнопкам Закрыть/Свернуть/Развернуть у отдельных оконных приложений. Гаджеты пишутся на xml и html вроде. Sidebar их встраивает в рабочий стол как маленькие веб-странички, так же, как active desktop встраивал поддержку HTML в рабочий стол в ранних версиях windows ( до Vista ).
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,602
Записей в блоге: 17
07.05.2012, 02:32  [ТС]     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #31
Игорь с++, теперь другой бок HWND_TOPMOST помещает форму поверх других, что приводит к тому что при разворачивании той же кнопкой форма висит поверх други окон.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
07.05.2012, 02:33     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #32
Первая же ссылка в гугле о создании гаджетов.
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,602
Записей в блоге: 17
07.05.2012, 02:36  [ТС]     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #33
Toshkarik, да это понятно...
То есть вы хотите сказать что служба урегулирывает как то с ОС вопрос сворачивания окон?
Обработка окон ведется не html или на js ?
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
07.05.2012, 02:46     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #34
Ну насколько можно верить статье, то поддерживаются VBScript и Java Script. Обработка идет HTML, которая в свою очередь содержит эти скрипты. Причем ничего компилировать не нужно. Все файлы с xml и html кодами помещаются в папку с любым названием, но обязательно оканчивающуюся на .gadget

Добавлено через 4 минуты
Цитата Сообщение от Avazart Посмотреть сообщение
То есть вы хотите сказать что служба урегулирывает как то с ОС вопрос сворачивания окон?
Ну как еще объяснить. Ну вот например для Aero вроде тоже запускается отдельная служба, но ведь никаких окон у нее нет, сворачивать нечего, она просто является частью интерфейса.
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
07.05.2012, 11:35     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #35
Цитата Сообщение от Avazart Посмотреть сообщение
теперь другой бок HWND_TOPMOST помещает форму поверх других
Так после попытки свернуть окно измените это.Я же говорил с самого начало , что есть некоторые ньюансы в этом коде.Нужна доработка.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2012, 16:49     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна"
Еще ссылки по теме:

C++ Создание "особенного" дочернего окна
C++ Как возможно выйти в инструкции switch в начало самой инструкции при нажатии "не правильной" кнопки
Передвижение окна при нажатии клавишей мышки и перетягивании C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,602
Записей в блоге: 17
07.05.2012, 16:49  [ТС]     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #36
Так после попытки свернуть окно измените это
Ну и как это сделать?
Yandex
Объявления
07.05.2012, 16:49     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна"
Ответ Создать тему
Опции темы

Текущее время: 20:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru