Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Implosion_IT
-18 / 9 / 5
Регистрация: 24.12.2014
Сообщений: 88
1

Какой Handle у формы из dll

05.02.2015, 15:18. Просмотров 480. Ответов 4
Метки нет (Все метки)

Добрый день,
Суть проблемы:
Есть dll, в ней форма Form1
Создаю форму активирую её, теперь вопрос какой будет Handle этого окна при нажатии Msg.message==WM_KEYDOWN
или как мне узнать какой Handle у активного dll окна.
Т. е. Хочу нажать клавишу отловить Msg через ApplicationEventsMessage и понять какое Handle сейчас активного окна, и как можно Handle посмотреть через showmesage ?

я так понимаю что Msg.hwnd равен приложению на момент нажатия Msg.message==WM_KEYDOWN
а как бы мне связать и понять на какой форме нажимаются клавиши?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2015, 15:18
Ответы с готовыми решениями:

Создание формы в dll
Добрый день! Задача простая: вызвать форму из dll (дальше на ней нужно будет...

Создание формы в dll
Добрый день.Мне необходимо загрузить из dll функцию, во время выполнения...

Задать владельца для формы из DLL
Здравствуйте. Есть dll, в ней форма. Dll писана в c++ Builder 2010, а прога,...

Ошиба при закрытии формы, вызванной из dll
Здравствуйте, есть программа, которая вызывает dll. В dll содержится форма,...

Кто может поделиться файлами ogg.dll, vorbis.dll и vorbisfile.dll - 32-х и 64-битными версиями?
Движок перевожу на платформу Win64 и нужно, чтобы разрядность ЕХЕ и DLL...

4
demmax2004
117 / 139 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
05.02.2015, 15:23 2
Цитата Сообщение от Implosion_IT Посмотреть сообщение
теперь вопрос какой будет Handle этого окна
Form1->Handle
0
Implosion_IT
-18 / 9 / 5
Регистрация: 24.12.2014
Сообщений: 88
05.02.2015, 15:25  [ТС] 3
и как связать через Msg.hwnd и Form1->Handle ??
так не работает,
C++
1
2
3
if (Msg.message==WM_KEYDOWN&&Msg.hwnd==Form1->Handle) {
  showmessage("Ok");
}
0
demmax2004
117 / 139 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
05.02.2015, 15:34 4
hwnd и Handle это одно и тоже

Добавлено через 49 секунд
Цитата Сообщение от Implosion_IT Посмотреть сообщение
Msg.hwnd==Form1->Handle
Значит не выполняется условие, потому что не равны.
0
Implosion_IT
-18 / 9 / 5
Регистрация: 24.12.2014
Сообщений: 88
06.02.2015, 07:20  [ТС] 5
Вот так работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TfLogin::ApplicationEventsMessage(tagMSG &Msg, bool &Handled)
{
    if ((Msg.message==WM_KEYDOWN)&&(GetForegroundWindow()==fLogin->Handle)) {
        switch(Msg.wParam) {
            case vkReturn:
                ShowMessage("!!!");
            break;
            default:break;
        }
    }
 
}
Всем спасибо, вопрос закрыт
0
06.02.2015, 07:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2015, 07:20

Как засунуть форму из dll в TPanel главной формы приложения???
Есть следующий вариант вызова формы из dll с динамическим подключением: Код...

Сообщение "Privileged instruction" при запуске дочерней формы из DLL
При попытке запустить дочернюю форму из DLL вылетает ошибка "Privileged...

Как узнать handle окна к которому подключена dll
Ставлю глобальных хук с помощью dll ( SetWindowsHookEx(WH_CBT, @WindowProc,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru