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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 70, средняя оценка - 4.73
Avazart
Эксперт С++
7116 / 5293 / 273
Регистрация: 10.12.2010
Сообщений: 23,411
Записей в блоге: 17
#1

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

06.05.2012, 22:50. Просмотров 9267. Ответов 35
Метки нет (Все метки)

Что происходит при нажатии этой кнопки в плане сообщениий, и как их перехватить и игнорировать,что бы окно не сворачивалось?
Чем это событие отличается от обычного сворачивания окна через кнопку свернуть ?
Календарик на рабочий стол в C++/WinAPI
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2012, 22:50     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна"
Посмотрите здесь:
C++ Как возможно выйти в инструкции switch в начало самой инструкции при нажатии "не правильной" кнопки
C++ "Неожиданное" закрытие окна при выводе результатов на консоль
Вызов окна "Сохранить как" в Microsoft Word C++
Как сделать чтобы при нажатии на кнопку "PlayWarcraft" заходил на мой сервер через IP adress C++
C++ API: востановление "чужого" окна из min
C++ Создание "особенного" дочернего окна
C++ Ошибка с массивом: программа при вводе "ступорится" при нажатии клавиши Enter
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
Эксперт С++
7116 / 5293 / 273
Регистрация: 10.12.2010
Сообщений: 23,411
Записей в блоге: 17
07.05.2012, 01:53  [ТС]     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #16
Да вы , что а я и незнал!!!А вы код программы смотрели или копирнули и всё.Отследи те где окно ваше и в SetWindowPosition поставте ваши координаты!!!
Я не автор той темы, мне интересен сам процес и как это обойти, а использовал я ваш exe
Намой взглад это явно не решение как и создание таймера автором той темы

Toshkarik,Ну вообще все окна являюся дочерними рабочего стола, а служба называется SideBar

Календарик на рабочий стол в C++/WinAPI - тут скрины

Но стоит заметить что они тоже не всегда адекватно реагируют на эту кнопку- становятся "поверх других окон"
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
07.05.2012, 01:55     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #17
Неправильно это не аргумент.

Добавлено через 1 минуту
Цитата Сообщение от Avazart Посмотреть сообщение
"поверх других окон"
Это как, если другие окна сворачиваются?
Avazart
Эксперт С++
7116 / 5293 / 273
Регистрация: 10.12.2010
Сообщений: 23,411
Записей в блоге: 17
07.05.2012, 01:57  [ТС]     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #18
После разворачивания, но это происходит не всегда, но возможно я ошибаюсь и это со сворачиванием не связано
Игорь с++
434 / 457 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
07.05.2012, 01:59     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #19
Цитата Сообщение от Avazart Посмотреть сообщение
Я не автор той темы, мне интересен сам процес и как это обойти, а использовал я ваш exe
так вот если вы посмотрите мой код , то увидите ,что
1)там нет определение где стоит окно
2)оно тупо ставится в точку 0,0
По моему дальше можно самому разворачивать тему(искать координаты и тд).
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
07.05.2012, 01:59     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #20
Про гаджеты я имел ввиду, что ими управляет процесс/служба. Они не являются отдельными простыми оконными приложениями.
Avazart
Эксперт С++
7116 / 5293 / 273
Регистрация: 10.12.2010
Сообщений: 23,411
Записей в блоге: 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
Игорь с++
434 / 457 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
07.05.2012, 02:03     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #22
Цитата Сообщение от Toshkarik Посмотреть сообщение
Про гаджеты я имел ввиду, что ими управляет процесс/служба. Они не являются отдельными простыми оконными приложениями.
вот именно управляет , а всё управление сводится к тому , что бы поставить определённый гаджет , а дальше всю работу делает самостаятельное окно !!!
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
07.05.2012, 02:05     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #23
Нет у гаджета самостоятельного окна, как и у процесса/службы. sidebar "встраивается" в рабочий стол. Это что вроде старого active desktop.
Игорь с++
434 / 457 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
07.05.2012, 02:10     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #24
Цитата Сообщение от Toshkarik Посмотреть сообщение
Нет у гаджета самостоятельного окна
а я вам говорю , что есть и программа полностью в ответе за свою окно.

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

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

Добавлено через 1 минуту
Цитата Сообщение от Toshkarik Посмотреть сообщение
Так же как и active desktop.
ну так всраивание как вы говорите тоже и там нет.
Avazart
Эксперт С++
7116 / 5293 / 273
Регистрация: 10.12.2010
Сообщений: 23,411
Записей в блоге: 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
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
07.05.2012, 02:16     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #28
Цитата Сообщение от Игорь с++ Посмотреть сообщение
ну так всраивание как вы говорите тоже и там нет.
А что там по Вашему там же запускалось отдельное приложение со своим окном?
Avazart
Эксперт С++
7116 / 5293 / 273
Регистрация: 10.12.2010
Сообщений: 23,411
Записей в блоге: 17
07.05.2012, 02:20  [ТС]     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #29
Нет у гаджета самостоятельного окна, как и у процесса/службы. sidebar "встраивается" в рабочий стол
Ну если судить по cкринам то есть... Или чего то не понимаю...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2012, 02:28     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна"
Еще ссылки по теме:
Передвижение окна при нажатии клавишей мышки и перетягивании C++
C++ "Змейка": при нажатии клавиши игра просто останавливается
Как запретить ввод слова "con" в консоли Visual Studio 2012 C++
C++ Необработанное исключение в "0x00412b4a" в "kursovik.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000004".
C++ Необработанное исключение в "0x01082855" в "sort.exe": 0xC0000005: Нарушение прав доступа при записи "0xcccccccc"

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

Или воспользуйтесь поиском по форуму:
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
07.05.2012, 02:28     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" #30
Цитата Сообщение от Avazart Посмотреть сообщение
Ну если судить по кринам то есть... Или чего то не понимаю...
Вы наверно не правильно поняли меня. Гаджет - это не отдельное приложение. Гаджетами управляет sidebar. Кнопки закрыть и настроить, как я считаю, никак не относятся к кнопкам Закрыть/Свернуть/Развернуть у отдельных оконных приложений. Гаджеты пишутся на xml и html вроде. Sidebar их встраивает в рабочий стол как маленькие веб-странички, так же, как active desktop встраивал поддержку HTML в рабочий стол в ранних версиях windows ( до Vista ).
Yandex
Объявления
07.05.2012, 02:28     Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна"
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru