Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Незнайка
26 / 11 / 2
Регистрация: 14.10.2016
Сообщений: 373
Записей в блоге: 2

Есть ли в C++ условие типа "Если моё окно неактивно"?

30.03.2017, 11:34. Показов 1333. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День всем добрый.

Хотел апгрейдить программу и решил, что лучше будет, если программа запустит функцию только тогда, когда окно программы неактивно.

C++
1
2
3
if (<окно неактивно>) {
    cout << "CLOSE ME! NOW!";
}
Как это можно осуществить?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.03.2017, 11:34
Ответы с готовыми решениями:

Открывается окно в браузере, но оно неактивно
Ребята! Подскажите, пожалуйста: есть код ie as internet explorer ie.navigate url do while ie.busy = true doevents loop ...

SpawEditor в Firefox окно для контента неактивно
вот если открыть демо с сайта - http://www.solmetra.com/en/disp.php/en_products/en_spaw/en_spaw_demo то окно не активно. как это...

Есть ли конфликт типов в равенстве, если слева переменная массива типа float, а справа функция с переменными типа int?
Доброго дня Всем. Подскажите пожалуйста, есть ли конфликт типов в следующем равенстве: volt = readADC(0); Если слева переменная...

14
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
30.03.2017, 11:39
В C++ вообще нет понятия "окна" как такового. Поэтому вопрос нужно переформулировать с указанием на конкретную систему программирования - Windows ? Qt ? MFC ? .NET ? или там у тебя Linux ? Qt ? Что у тебя там употребляется?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
30.03.2017, 11:40
Средствами WinAPI, например
IsWindowVisible
0
Незнайка
26 / 11 / 2
Регистрация: 14.10.2016
Сообщений: 373
Записей в блоге: 2
30.03.2017, 11:51  [ТС]
CheshireCat, MFC

Добавлено через 5 минут
MrGluck, а эта функция работает, если окно программы всегда поверх всех окон?

В справке написано, что возвращается 1 , если окно WS_VISIBLE, тогда получается, моя программа всегда VISIBLE? Или нет?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
30.03.2017, 11:53
mkostoevr, вам нужно проверить не свёрнута ли программа? Это другое состояние.
0
Незнайка
26 / 11 / 2
Регистрация: 14.10.2016
Сообщений: 373
Записей в блоге: 2
30.03.2017, 11:57  [ТС]
MrGluck, не, вы не поняли, как я понял по описанию функции, она проверяет, отрисовывается ли окно. Не перекрыто ли оно другим окном. А моя программа всегда поверх всех коно, а значит, она никогда не будет перекрыта другими окнами, даже если будет неактивна.

А я искал проверку именно того, активно ли указанное окно. А не отображается ли оно.

Или я неправильно понял?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
30.03.2017, 12:01
Мне кажется, мы вкладываем разный смысл в понятие "окно неактивно". Что это в вашем понимании?
0
Незнайка
26 / 11 / 2
Регистрация: 14.10.2016
Сообщений: 373
Записей в блоге: 2
30.03.2017, 12:10  [ТС]
MrGluck, ну... Что-то в роде этого:
Миниатюры
Есть ли в C++ условие типа "Если моё окно неактивно"?  
0
Незнайка
26 / 11 / 2
Регистрация: 14.10.2016
Сообщений: 373
Записей в блоге: 2
30.03.2017, 12:12  [ТС]
MrGluck, Когда я открываю открываю программу, окно программы активно. Когда я переключаюсь к браузеру, окно браузера активно, а моей программы - неактивно. НО! Моя программа всегда поверх всех окон, даже если неактивно. Значит, если я правильно понял назначение функции, она выведет TRUE, даже когда я переключусь к браузеру.
0
 Аватар для avgoor
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
30.03.2017, 12:17
Лучший ответ Сообщение было отмечено mkostoevr как решение

Решение

mkostoevr, обрабатывайте WM_ACTIVATE.
1
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
30.03.2017, 12:19
Лучший ответ Сообщение было отмечено mkostoevr как решение

Решение

Если я вас правильно понял, то можно попытаться отслеживать событие WM_KILLFOCUS (в паре с WM_SETFOCUS).
1
 Аватар для avgoor
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
30.03.2017, 12:25
MrGluck, ЕМНИП, при вызове модального диалога, родительское окно потеряет фокус, но не перестанет быть активным.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
30.03.2017, 12:27
avgoor, так у ТС вроде бы в картинке в 8 посте так и надо. Я честно не до конца понял что ему требуется. Но думаю, что либо мой вариант, либо ваш полностью покроет его нужды.
0
 Аватар для avgoor
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
30.03.2017, 12:28
MrGluck, я так понял, что у него на картинке активное окно вызывает мессэджбткс, а второе при этом не активно.
0
 Аватар для dailydose
671 / 217 / 88
Регистрация: 21.07.2016
Сообщений: 1,036
Записей в блоге: 2
30.03.2017, 13:58
Лучший ответ Сообщение было отмечено mkostoevr как решение

Решение

C++
1
2
3
4
5
6
7
8
DWORD id_of_my_process = 2056;
bool WindowOnFocus()
{
    DWORD idActive;
    // получаем id активного окна
    GetWindowThreadProcessId(GetForegroundWindow(), &idActive); 
    return idActive == id_of_my_process ;
}
C++
1
2
3
if (!WindowOnFocus()) {
    cout << "CLOSE ME! NOW!";
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.03.2017, 13:58
Помогаю со студенческими работами здесь

как задать следующее условие типа если-то-иначе
Ребят вроде всё просто а понять не могу почему не работает. Я новичок в этом деле. На форме расположены 3 эдита и 1н комбобокс и кнопка...

Есть метод класса внутри , есть проверка. Если условие сходится то метод должен выдать указатель, иначе булевую переменную
Есть метод класса внутри которого, посередине, есть проверка. Если условие сходится то метод должен выдать указатель на вектор, а если нет...

Подскажите, есть ли условие Если нет в Access?
Подскажите, есть ли условие &quot;Если нет&quot; в Access? Допустим если в строках нет определенной цифры.

Отчет не выводит данные, если есть условие отбора
Проблема в следующем, если ставить условие отбора на запрос, которое бы брало имя из поля со списком, то в отчете не отображается ни один...

Написать программу, которая в качестве результата дает истину, если выполняется заданное условие, или ложь, если условие
Написать программу, которая в качестве результата дает истину, если выполняется заданное условие, или ложь, если условие не выполняется:...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru