Russian Qt Forum
Ноябрь 23, 2024, 08:49
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
QCombobox и FindWindow
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QCombobox и FindWindow (Прочитано 11783 раз)
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: QCombobox и FinedWindow
«
Ответ #15 :
Март 22, 2012, 11:55 »
Цитата: Firefox от Март 22, 2012, 09:13
Код:
Id_REK1=::FindWindow(NULL,Current_po);
if(Id_REK1!=false)
FindWindow возвращает хендл окна или NULL, почему ты сравниваешь с false?
«
Последнее редактирование: Март 22, 2012, 12:03 от Alex Custov
»
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: QCombobox и FindWindow
«
Ответ #16 :
Март 22, 2012, 11:59 »
Цитата: Firefox от Март 22, 2012, 10:22
мне оно и не надо. вот по этому и спрашиваю, как ловить нажатие клавиатуры в своей программе которая в фоне
программа не имеющая клавиатурного фокуса не будет получать клавиатурные события. Делайте глобальные сочетания клавиш, например, через QxtGlobalShortcut. К тому же нужно понимать, что в винде чтобы переместить окно на foreground должны выполняться несколько условий, описанных в MSDN, и это сделать получиться не всегда.
Записан
Bepec
Гость
Re: QCombobox и FindWindow
«
Ответ #17 :
Март 22, 2012, 12:02 »
Помоему такая архитектура бред - "несколько окон без элементов управления, управляемых отдельным невидимым менегером по сочетаниям быстрых клавиш"...
Как то даже боюсь спросить - а если пользователь захочет закрыть одно окно, оставив второе, ваша программа такое просчитывает? (alt+f4 рулят)
Записан
V1KT0P
Гость
Re: QCombobox и FinedWindow
«
Ответ #18 :
Март 22, 2012, 12:06 »
Цитата: Firefox от Март 21, 2012, 18:17
да это winApi. у меня qt 4.3.3 и как выводить окно другой программы на передний план функциями qt я не знаю.
Все программы написаны c использованием Qt4?
Записан
Firefox
Гость
Re: QCombobox и FindWindow
«
Ответ #19 :
Март 23, 2012, 07:30 »
да все программы написаны с использованием библиотеки qt 4.3.3. а что касается структуры работы с окнами, то это специфическое ПО поэтому выполняться операторами будут только определенные действия. Alt+F4 не входит в этот набор. вставлять в каждый модуль элементы управления по переключению между модулями есть плохо. модули должны быть независимые и ни с чем не связанные. они только выполняют свои расчетные задачи. и могут запускаться в разных "заказах" по разному и управление будет разное. поэтому управление их не должно касаться.
Записан
Firefox
Гость
Re: QCombobox и FindWindow
«
Ответ #20 :
Март 23, 2012, 07:47 »
по поводу сравнения NULL конечно корректнее, но вданном варианте не вижу большой ошибки. и программа воспринимает все правильно.
Записан
Bepec
Гость
Re: QCombobox и FindWindow
«
Ответ #21 :
Март 23, 2012, 08:00 »
Конечно это не моё дело, а то, что alt+F4 перехватывается Виндой и требует закрытия окна, это ничего ?
Советую предусмотреть "я захотел поиграть в пасьянс и решил закрыть окна alt+F4".
В принципе теперь понятно - вы пишете оболочку для работы с чем-то. Тогда тем более надо такие случаи предусмотреть.
Советую использовать SetForegroundWindow(hwnd); для переключения окна. У меня с ним ещё никаких проблем не было.
Записан
Firefox
Гость
Re: QCombobox и FindWindow
«
Ответ #22 :
Март 23, 2012, 09:31 »
я использую SetForegroundWindow(), в примере кода на 1 странице он присутствует. но все равно после работы в QCombobox
не отрабатывает FindWindow(), такое ощущение что оно возвращает не указатель на окно приложения, а указатель на QCombobox с которым осуществлялась работа. из за чего, конечно, я не могу далее сделать SetForegroundWindow() правильно.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: QCombobox и FindWindow
«
Ответ #23 :
Март 23, 2012, 11:49 »
Цитата: Firefox от Март 23, 2012, 09:31
я использую SetForegroundWindow(), в примере кода на 1 странице он присутствует. но все равно после работы в QCombobox
не отрабатывает FindWindow(), такое ощущение что оно возвращает не указатель на окно приложения, а указатель на QCombobox с которым осуществлялась работа. из за чего, конечно, я не могу далее сделать SetForegroundWindow() правильно.
Значит задействуйте еще и первый параметр lpClassName. Когда все работает (комбик не трогают) распечатайте имя класса для каждого найденного хендла (если не ошибаюсь GetClassName) а затем вставьте найденные имена классов в Ваш текст
Записан
V1KT0P
Гость
Re: QCombobox и FindWindow
«
Ответ #24 :
Март 23, 2012, 12:19 »
Цитата: Firefox от Март 23, 2012, 07:30
да все программы написаны с использованием библиотеки qt 4.3.3. а что касается структуры работы с окнами, то это специфическое ПО поэтому выполняться операторами будут только определенные действия. Alt+F4 не входит в этот набор. вставлять в каждый модуль элементы управления по переключению между модулями есть плохо.
Если это ваши программы, то не проще ли каждую программу превратить в плагин, а затем подключать к менеджеру?
Получится очень удобно: грузишь плагин, через интерфейс получаешь указатель на виджет. А затем по нажатию кнопки убираешь виджет и показываешь другой.
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: QCombobox и FindWindow
«
Ответ #25 :
Март 23, 2012, 12:40 »
Цитата: Firefox от Март 23, 2012, 09:31
не отрабатывает FindWindow(), такое ощущение что оно возвращает не указатель на окно приложения, а указатель на QCombobox с которым осуществлялась работа. из за чего, конечно, я не могу далее сделать SetForegroundWindow() правильно.
FindWindow ищет top-level окна, она должен работать правильно. Где именно вызывается этот код? Случайно не обработчике keyPressEvent? Ты дебажила код, хотя бы с помощью qDebug?
Записан
Firefox
Гость
Re: QCombobox и FindWindow
«
Ответ #26 :
Март 23, 2012, 15:46 »
код вызывается в данный момент по событию. событие отрабатывает. работаю в VS 2003 с интегрированным qt поэтому debag там есть.есть такая функция перед BringWindowToTop, - Application->Restore();, но применить её к QApplication я не смогла.
Записан
Firefox
Гость
Re: QCombobox и FindWindow
«
Ответ #27 :
Март 23, 2012, 15:48 »
Ещё может кто объяснит как правильно поставить класс QxtGlobalShortcut. я его скачала но не получается. а в гугле очень скудные инструкции только нашла.
Записан
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...