Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
{c0Der}
 Аватар для Markus_13
138 / 123 / 18
Регистрация: 20.02.2009
Сообщений: 434
Записей в блоге: 4

Перехват WindowMessage для окна, создаваемого DLL

22.08.2012, 11:01. Показов 1644. Ответов 5

Студворк — интернет-сервис помощи студентам
Суть проблемы: есть окно, создаваемое средствами подключенной DLL, я могу менять положение и размеры, но винда не позволяет ставить размеры больше разрешения экрана, соотв-но необходимо перехватить WM_GetMinMaxInfo, но как это сделать, если у меня нет доступа WindowProc?

Да, конечно можно использовать Hook, но есть ли более изящный способ???
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.08.2012, 11:01
Ответы с готовыми решениями:

Манифест стиля для окна, вызываемого из DLL
Всем добрый день. Есть такая проблема. В dll создается отдельный поток CreateThread внутри которого создается окно. Консольное приложение...

Вызвать нужное событие из динамически создаваемого TextBlock в другом окне из активного окна
Нужно реализовать что-то в духе Toast Notification из Windows 8 Есть главное окно приложения-MainWindow По некоторому событию...

Перехват MessageBox в dll
Недавно нашёл исходник dll перехватывающей ф-цию MessageBoxW: #include <Windows.h> #include <string> #define SIZE 6 typedef...

5
Эксперт по электронике
6562 / 3189 / 335
Регистрация: 28.10.2011
Сообщений: 12,470
Записей в блоге: 7
22.08.2012, 14:50
hWnd окна есть?
Тогда SetWindowLong() в помощь.
0
{c0Der}
 Аватар для Markus_13
138 / 123 / 18
Регистрация: 20.02.2009
Сообщений: 434
Записей в блоге: 4
22.08.2012, 23:05  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
hWnd окна есть?
Тогда SetWindowLong() в помощь.
Причем тут SetWindowsLong, какой мне от него толк? Мне не стиль нужно менять, а сообщение обрабатывать для чужого окна (или сделать его дочерним своему - но в этом плане оно вообще отказывается работать)...
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33374 / 21499 / 8235
Регистрация: 22.10.2011
Сообщений: 36,894
Записей в блоге: 11
22.08.2012, 23:54
Лучший ответ Сообщение было отмечено volvo как решение

Решение

Во многих случаях достаточно сбить параметры MINMAX окна вызовом для него SetWindowPos с флагом SWP_NOSENDCHANGING. Попробуй.
1
{c0Der}
 Аватар для Markus_13
138 / 123 / 18
Регистрация: 20.02.2009
Сообщений: 434
Записей в блоге: 4
23.08.2012, 01:34  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Во многих случаях достаточно сбить параметры MINMAX окна вызовом для него SetWindowPos с флагом SWP_NOSENDCHANGING. Попробуй.
Это реально помогло, тысяча чертей))) Сам бы вряд ли догадался, только если случайно =)

Добавлено через 17 минут
Вот такой код позволил сделать окно больше разрешения экрана:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//...
var wh:hWnd; x,y,w,h:integer;
//...
//получаем текущее разрешение:
x:=GetDeviceCaps(getDC(0),HORZRES);
y:=GetDeviceCaps(getDC(0),VERTRES);
//вычисляем ширину/высоту для стандартного "диалогового" окна:
w:=x+GetSystemMetrics(SM_CXDLGFRAME)*2;
h:=y+GetSystemMetrics(SM_CYDLGFRAME)*2+GetSystemMetrics(SM_CYCAPTION);
//вычисляем координаты (чтобы рамка была за границей видимой области):
x:=GetSystemMetrics(SM_CXDLGFRAME)-(w-x);
y:=GetSystemMetrics(SM_CYDLGFRAME)-(h-y);
//собственно меняем размер и положение:
SetWindowPos(wh,HWND_TOPMOST,x,y,w,h,SWP_NOSENDCHANGING);
//...
0
Эксперт по электронике
6562 / 3189 / 335
Регистрация: 28.10.2011
Сообщений: 12,470
Записей в блоге: 7
24.08.2012, 09:58
Цитата Сообщение от Markus_13 Посмотреть сообщение
как это сделать, если у меня нет доступа WindowProc
Цитата Сообщение от Markus_13 Посмотреть сообщение
Причем тут SetWindowsLong, какой мне от него толк? Мне не стиль нужно менять, а сообщение обрабатывать для чужого окна
Курим доки. http://msdn.microsoft.com/en-u... s.85).aspx

GWL_WNDPROC как бы намекает.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.08.2012, 09:58
Помогаю со студенческими работами здесь

Перехват сообщения от DLL
Доброго времени суток! Есть такая проблема: В dll имеется функция c тремя аргументами, которая описана так: procedure MyFunc(var...

Перехват сообщений Окна
Есть у меня большое и тяжелое окно (Form1). Все сообщения для окна обрабатывались компонентом ApplicationEvents1Message и все работало...

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

Перехват создания окна
Доброе утро. Приведите, пожалуйста, пример перехвата создания окна с помощью хука. То есть пример фоновой программы, которая отлавливает...

Перехват Send(ws2_32.dll)
Создаю программу для ограничения доступа юзеров к определенным сайтам . Использую библиотеки для перехвата ExtendedAPIFunctions и...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru