|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.09.2022, 00:19 | #1 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Как поймать клик мыши на панели задач?
Здравствуйте! Первоначально окно расположено в каком-либо углу экрана по нажатию ЛКМ окно сворачивается в пиктограмму, а затем по нажатию ЛКМ по пиктограмме, оно восстанавливается в другом углу экрана. Проблема в том, что по щелчку левой клавиши мыши оно сворачивается в пиктограмму на панели задач, и, соответственно, на второе щёлканье ЛКМ не реагирует. Возможно, я вновь усложняю задачу, но как работать с панелью задач, и возможно ли отработать как-то нажатие ЛКМ так чтобы задача была выполнена. Ясно, что в функцию моего окна сообщение о нажатии клавиши из панели задач не придёт, а как тогда отработать это?
Я сделал через MoveWindow() свернул окно, оно у меня расположилось выше панели задач, но тут другая проблема свёрнутое в пиктограмму окно не реагирует на нажатие мыши. Хз... возможно, есть советы, желательно без хуков?) [CODEcase WM_LBUTTONDOWN: GetWindowInfo(hwnd, &winf); SystemParametersInfo(SPI_GETWORKARE A, 0, &rcSPI, 0); if(!IsIconic(hwnd)) MoveWindow(hwnd, 0, cyScreen - GetSystemMetrics(SM_CYCAPTION) - (cyScreen - rcSPI.bottom), GetSystemMetrics(SM_CXMINIMIZED), GetSystemMetrics(SM_CYCAPTION), TRUE); else MoveWindow(hwnd, winf.rcWindow.right - cxQuarterScreen, winf.rcWindow.top, cxQuarterScreen, cyQuarterScreen, TRUE);][/CODE] Когда окно сворачивается в пиктограмму на панели задач это ссылка на окно или всё ещё моё окно?) Т.е. могу я с ним работать, как с окном до его сворачивания? Если я кликаю по свёрнутому окну(пиктограмме) в панели задач окно получает сообщения об этом нажатии клавиши мыши или нет? |
07.09.2022, 01:29 | #2 | |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
TrackMouseEvent
Цитата:
|
|
07.09.2022, 02:05 | #3 | |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Цитата:
а затем по нажатию ЛКМ по пиктограмме, оно восстанавливается в другом углу экрана. |
|
07.09.2022, 04:58 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Вам надо перестать заниматься фигней - клики другого окна, хуки... и обработать сооветствующие вин. сообщения для вашего окна.
|
07.09.2022, 05:08 | #5 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
О хуках только теоретически знаю, так что это, на данный момент, не мой уровень.(
В общем-то я не хочу перехватывать клики над другим окном... Почему другого - это моё окно, но свёрнутое в пиктограмму, почему оно перестаёт быть моим окном после этого, после сворачивания в пиктограмму? |
07.09.2022, 05:43 | #6 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Что за каша у вас в голове? Не перестает. Так же, как и процесс в Диспетчер задач ваш, но окно другое. Так же, как и в проводнике файлы ваши, но окно другое.
|
07.09.2022, 06:14 | #7 | |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Каша как каша поэтому и пытаюсь разобраться, пока безуспешно.
Цитата:
Но как-то же всё это функционирует, если кликаю на пиктограмме, окно восстанавливается в том же углу, в котором оно было до того как его свернули, как-то система реагирует на это знает, где было окно до сворачивания. Я смотрел в spy++ там море всяких сообщений малопонятных, и ни одного из тех, которые я наблюдаю, когда кликаю в рабочей области окна, из чего ясно, что свёрнутое окно уже со мной не контактирует, но не ясно почему. А если применить функцию SetCapture(), чтобы реагировало на нажатие ЛКМ вне области окна т.е. например на заголовке окна и.т.д. Тогда можно свернуть с помощью MoveWindow() и так же вернуть всё обратно с помощью той же функции. Я пробовал, но ничего путного не получилось, где лучше вызывать функцию SetCapture() WM_LBUTTONDOWN -- УЖЕ ПОЗНО я кликнул на окне.. WM_CREATE - слишком рано, приложение начинает тормозить... Без обид, просто пытаюсь вникнуть в программирование под Windows на WinAPI и многое для меня, словно, тёмный лес. |
|
07.09.2022, 08:06 | #8 | |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Цитата:
Это все можно реализовать не вторгаясь в другое приложение с хуками и все будет в рамках задания. Прочитайте его внимательнее. По нажатию ЛКМ на пиктограмме ваше окно так и так будет развернуто. Последний раз редактировалось macomics; 07.09.2022 в 08:11. |
|
07.09.2022, 08:14 | #9 | |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Цитата:
Кстати миниатюра тоже не ваше окно, просто панель задач создала пиктограмму вашего окна в виде картинки (которую регулярно обновляет) и создала еще одно свое окно с этой картинкой. Последний раз редактировалось macomics; 07.09.2022 в 08:18. |
|
07.09.2022, 08:46 | #10 | |||||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
|||||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Клик мыши по цвету | xRamzeSx | Общие вопросы Delphi | 8 | 06.02.2012 00:58 |
Поймать клик мыши | maks5 | Общие вопросы Delphi | 1 | 06.01.2012 00:01 |
Как поймать клик по строке в ListView? | jungle | Win Api | 5 | 19.10.2009 10:10 |
TСhart, клик мыши и координаты XY, Определение координат оси при клике мыши | Aravild | Компоненты Delphi | 1 | 31.01.2009 16:28 |
Клик мыши | stayer | Общие вопросы Delphi | 1 | 30.10.2008 19:53 |