Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];

Вниз

Как получить хэндл окна   Найти похожие ветки 

 
AngelSaint   (2003-07-30 09:40) [0]

Доброго времени суток мастера!
Проблема в следующем: есть окно моей программы. Как мне узнать дескриптор окна программы, которая была активна до того, как активизировалась моя софтина? т.е. мне нужно, чтобы мое окно спокойно висело посреди экрана и не мешало работе с другими приложениями. Если можно, то поподробней или киньте ссылку на нужную статью.


 
Игорь Шевченко   (2003-07-30 10:03) [1]

WM_ACTIVATE обрабатывать


 
AngelSaint   (2003-07-30 14:02) [2]

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

> Игорь Шевченко © (30.07.03 10:03)
> WM_ACTIVATE обрабатывать



 
VMcL   (2003-07-30 14:09) [3]

>AngelSaint (30.07.03 14:02)

F1:

WM_ACTIVATE
fActive = LOWORD(wParam); // activation flag
fMinimized = (BOOL) HIWORD(wParam); // minimized flag
hwndPrevious = (HWND) lParam; // window handle

hwndPrevious

Value of lParam. Identifies the window being activated or deactivated, depending on the value of the fActive parameter. If the value of fActive is WA_INACTIVE, hwndPrevious is the handle of the window being activated. If the value of fActive is WA_ACTIVE or WA_CLICKACTIVE, hwndPrevious is the handle of the window being deactivated. This handle can be NULL


 
Иван   (2003-07-30 14:47) [4]

Используй хуки.
Вот общая ссылка на информацию по хукам (правда С-й синтаксис):
www.firststeps.ru.\mfc\winapi\hook\hook1.html
А вот более точные данные:
...
7.4.2 - Hook-точка WH_CBT
www.firststeps.ru\mfc\winapi\hook\r.php@7
Windows вызывает подключаемую процедуру WH_CBT перед активизацией, созданием, разрушением, уменьшением, максимизированием, перемещением, или установкой размеров окна; перед завершением системной команды; перед удалением события мыши или клавиатуры из системной очереди сообщений; перед установкой фокуса ввода; или перед синхронизацией системной очереди сообщений.
7.4.11 - Hook-точки WH_SHELL
www.firststeps.ru.chm::/mfc/winapi/hook/r.php@16
Windows вызывает подключаемую процедуру WH_SHELL тогда, когда оболочка прикладной программы собирается быть активной и когда окно верхнего уровня создается или разрушается.
7.5.1.14 - Функция SetWindowsHookEx
www.firststeps.ru.chm::/mfc/winapi/hook/r.php@25
Функция SetWindowsHookEx устанавливает определяемую программой подключаемую процедуру в цепочку hook-точек. Прикладная программа устанавливает фильтр - процедуру, чтобы контролировать некоторые типы событий в системе. Подключаемая процедура может контролировать события связанные или с конкретным потоком или со всеми потоками в системе. Эта функция заменяет функцию SetWindowsHook.
---
P.S.
Не забывай передавать управление следующей ловушке (7.5.1.2 - Функция CallNextHookEx),
а также удалять по завершении программы ловушку из цепочки (7.5.1.17 - Функция UnhookWindowsHookEx)
иначе тебе прийдется перезагружать тачку.
Тема сложная, я сам еще не разобрался, пока что накапливаю нужную информацию. Будет что путевое - кинь ссылку на мыло. Если разберешься с трансляцией С-ых типов к дельфийским - мыль.

А может тебе просто нужно сделать так, чтобы твое окно плавало поверх других, на манер FleshGet"овской корзинки?
Тогда все просто.
В свойстве формы .FormStyle выбери тип окна "поверх всех окон" - fsStayOnTop.
fsStayOnTop - форма является SDI-окном, но все время остается поверх всех остальных окон(искл. окна с тем же атрибутом).
Дополнительно:
fsNormal - форма является обычным SDI-окном или диалоговым окном.
fsMDIChild - форма является дочерним MDI-окном(вложенные окна).
fsMDIForm - форма является родительским MDI-окном, то есть обрамляющим окном MDI-приложения.
Панель задач - окно с атрибутом fsStayOnTop.
Желаю удачи.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.01 c
1-3906
killer
2003-09-20 19:47
2003.10.02
Как из Ini-файла считать поток?


3-3707
eds
2003-09-10 18:23
2003.10.02
Какой формат выбрать?


3-3720
Ghost
2003-09-13 10:45
2003.10.02
подскажите что за ошибка An occurred while attempting to


1-3971
Тих
2003-09-19 22:18
2003.10.02
Наследование форм от интерфейсов в Builder


1-3927
Катерина
2003-09-21 19:47
2003.10.02
Отладка: ошибки в try...except





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский