Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,048
Записей в блоге: 17
#1

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

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

Что происходит при нажатии этой кнопки в плане сообщениий, и как их перехватить и игнорировать,что бы окно не сворачивалось?
Чем это событие отличается от обычного сворачивания окна через кнопку свернуть ?
Календарик на рабочий стол в C++/WinAPI
0
Изображения
 
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2012, 22:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна" (C++):

Как возможно выйти в инструкции switch в начало самой инструкции при нажатии "не правильной" кнопки - C++
В целом у меня вопрос такой: Как возможно выйти в инструкции switch в начало самой инструкции при нажатии не правильной кнопки. Вот...

Реализовать выход из многопоточного приложения при нажатии сочетания клавиш "Ctrl+С" - C++
Добрый день! Подскажите пжл, как реализоввать выход с многопоточного(консольного) приложения по обработке нажатия клавишь ctrl+c(при этом...

"Неожиданное" закрытие окна при выводе результатов на консоль - C++
Здраствуйте, Уважаемые программисты! Недавно начал учить язык програмирования C++, произошла такакя проблема, пишу-пишу код. И когда...

Вызов окна "Сохранить как" в Microsoft Word - C++
Доброго времени суток. Кто знает, как из C++ дёрнуть данное окно?

Как сделать чтобы при нажатии на кнопку "PlayWarcraft" заходил на мой сервер через IP adress - C++
ссылка https://code.google.com/p/wc3launcher/ ЛАунчер для сервера Как сделать чтобы при нажатии на кнопку "PlayWarcraft"...

API: востановление "чужого" окна из min - C++
Знатоки! Может кто знает какие API-функции вызываются при восстановлении минимизированного окна при щелчке на значке в панели задач. ...

36
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,048
Записей в блоге: 17
07.05.2012, 01:53  [ТС] #16
Да вы , что а я и незнал!!!А вы код программы смотрели или копирнули и всё.Отследи те где окно ваше и в SetWindowPosition поставте ваши координаты!!!
Я не автор той темы, мне интересен сам процес и как это обойти, а использовал я ваш exe
Намой взглад это явно не решение как и создание таймера автором той темы

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

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

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

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

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

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

Добавлено через 1 минуту
Цитата Сообщение от Toshkarik Посмотреть сообщение
Так же как и active desktop.
ну так всраивание как вы говорите тоже и там нет.
1
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,048
Записей в блоге: 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)
0
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
07.05.2012, 02:16 #28
Цитата Сообщение от Игорь с++ Посмотреть сообщение
ну так всраивание как вы говорите тоже и там нет.
А что там по Вашему там же запускалось отдельное приложение со своим окном?
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,048
Записей в блоге: 17
07.05.2012, 02:20  [ТС] #29
Нет у гаджета самостоятельного окна, как и у процесса/службы. sidebar "встраивается" в рабочий стол
Ну если судить по cкринам то есть... Или чего то не понимаю...
0
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
07.05.2012, 02:28 #30
Цитата Сообщение от Avazart Посмотреть сообщение
Ну если судить по кринам то есть... Или чего то не понимаю...
Вы наверно не правильно поняли меня. Гаджет - это не отдельное приложение. Гаджетами управляет sidebar. Кнопки закрыть и настроить, как я считаю, никак не относятся к кнопкам Закрыть/Свернуть/Развернуть у отдельных оконных приложений. Гаджеты пишутся на xml и html вроде. Sidebar их встраивает в рабочий стол как маленькие веб-странички, так же, как active desktop встраивал поддержку HTML в рабочий стол в ранних версиях windows ( до Vista ).
0
07.05.2012, 02:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2012, 02:28
Привет! Вот еще темы с ответами:

Создание "особенного" дочернего окна - C++
Здравствуйте, товарищи. Пару дней назад экспериментировал я с созданием дочерних окон главного окна и получил один интересный формат...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно". Я так...

Ошибка с массивом: программа при вводе "ступорится" при нажатии клавиши Enter - C++
Задание: Напишите программу, используя указатели, которая вычисляет адреса чётных элементов массива, состоящего из 10 чисел типа float. ...

Передвижение окна при нажатии клавишей мышки и перетягивании - C++
Как на c++ сделать передвижение окна при нажатие и перетягивание клавишей мышки в опредильонной области окна?


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

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