Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [CE] Отображение на экране диалога 
:(
    Опции темы
Brodyaga
Дата 3.7.2009, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: нет
Всего: 2



Всем доброго времени суток! Подскажите пожалуйста, как с помощью WinApi определить, видим ли диалог на экране, а не свёрнут в трей и т.д.?? IsWindowVisible не подходит :(
PM MAIL   Вверх
Andrey44
Дата 3.7.2009, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 8
Всего: 26



Цитата(Brodyaga @  3.7.2009,  09:06 Найти цитируемый пост)
IsWindowVisible не подходит :( 

А чем не нравится?

Добавлено через 3 минуты и 45 секунд
А вообще можно
Код

IsIconic(hWnd);



--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
BorisVorontsov
Дата 3.7.2009, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 4
Всего: 10



GetWindowPlacement


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
Brodyaga
Дата 3.7.2009, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: нет
Всего: 2



Цитата

А вообще можно

Код

IsIconic(hWnd);



Цитата

GetWindowPlacement


Вообщето WinCE smile 

Только не переносите тему в мобильные технологии, там вообще с WinApi мёртво :( Я лучше ваших советов послушаю и переделаю под CE.

Цитата

Цитата

IsWindowVisible не подходит :( 


А чем не нравится?

Когда окно свёрнуто, функция всеровно возвращает true. 


Функция IsWindowVisible

Описание:
function IsWindowVisible(Wnd: HWnd): Bool;
Опpеделяет, сделано ли окно видимым функцией ShowWindow.
Паpаметpы:
Wnd: Идентификатоp окна.
Возвpащаемое значение:
Не нуль, если окно существует на экpане (даже если полностью закpыто); 0 - если нет.

Ещё какие-нить предложения есть?

Это сообщение отредактировал(а) Brodyaga - 3.7.2009, 12:44
PM MAIL   Вверх
BorisVorontsov
Дата 3.7.2009, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 4
Всего: 10



Тогда попробуй GetWindowRect


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
Brodyaga
Дата 6.7.2009, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: нет
Всего: 2



Цитата

Тогда попробуй GetWindowRect


Не получается.. даже если окно свёрнуто, то ширина прямоугольника(bottom) возвращённого функцией GetWindowRect всеравно не равна 0...
PM MAIL   Вверх
Earnest
Дата 6.7.2009, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 33
Всего: 183



А кто сказал, что оно должно быть 0? Высота окна должна быть примерно равна размеру заголовка; в "нормальном" виде так окно не живет...


--------------------
...
PM   Вверх
Brodyaga
Дата 6.7.2009, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: нет
Всего: 2



Вообщем bottom, при использовании функции GetWindowRect, на развёрнутом диалоге и свёрнутом одинаков, а top равен 0.

Да и потом.. мне же не нужно знать когда окно свёрнуто, а когда развёрнуто... оно же может быть развёрнуто, но быть перекрыто другим окном... Может можно както определить является ли окно активным?

P.S. использую диалоги из ресурсов
PM MAIL   Вверх
BorisVorontsov
Дата 6.7.2009, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 4
Всего: 10



Цитата(Brodyaga @  6.7.2009,  14:09 Найти цитируемый пост)
Может можно както определить является ли окно активным?

GetForegroundWindow


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
Andrey44
Дата 7.7.2009, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 8
Всего: 26



Цитата(Brodyaga @  6.7.2009,  14:09 Найти цитируемый пост)
можно както определить является ли окно активным?

GetActiveWindow


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
GremlinProg
Дата 10.7.2009, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Цитата(Brodyaga @  3.7.2009,  14:42 Найти цитируемый пост)
Вообщето WinCE  

Цитата(Brodyaga @  3.7.2009,  14:42 Найти цитируемый пост)
Только не переносите тему в мобильные технологии

только в названии таких тем, пожалуйста, указывай специфику именно CE, чтобы не было путаницы (в квадратных, круглых скобках, в названии, в описании - без разницы, но чтобы это было видно сразу)


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
Brodyaga
Дата 23.7.2009, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: нет
Всего: 2



Цитата

Цитата

Только не переносите тему в мобильные технологии


только в названии таких тем, пожалуйста, указывай специфику именно CE, чтобы не было путаницы (в квадратных, круглых скобках, в названии, в описании - без разницы, но чтобы это было видно сразу)


так ведь если укажу что CE то сразу в мобильные технологии перенесут :((

Спасибо, работает как с GetForegroundWindow, так и с GetActiveWindow.

Только вот чтобы отобразить скрытое окно на экран SetActiveWindow не подходит, только SetForegroundWindow.
PM MAIL   Вверх
GremlinProg
Дата 23.7.2009, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Цитата(Brodyaga @  23.7.2009,  15:44 Найти цитируемый пост)
так ведь если укажу что CE то сразу в мобильные технологии перенесут :((


M
GremlinProg
не перенесут

смысл переноса темы в другой раздел как раз в том и заключается,
чтобы вопрос попал на глаза программистов той области,
которая наиболее удовлетворяет содержанию темы,
а раз CE API наиболее удовлетворяет критериям WinAPI,
то ее присутствие в этом подфоруме будет пока вполне уместным,
главное не забывать о специфике, что и нужно дополнительно подчеркивать в названии темы.


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0572 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.