IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Меню, WinAPI
сообщение
Сообщение #21


Гость






Цитата
А почему нет обращения к функции

Цитата
with wc do
begin
cbsize := sizeof( wc );
style := cs_hredraw or cs_vredraw;
lpfnwndproc := @windowproc; // Это что?
Ты своему классу поставил в соответствие эту самую функцию. Теперь система знает, что в случае, когда твое окно получает сообщение, обрабатываться оно будет в функции WindowProc. Собственно, для этого и нужна инициализация класса.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #22


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Цитата
Чтобы Блокнот реагировал на твое меню, мало заменить само меню, надо еще заменить (ну, или расширить) оконную функцию
Надо ловить нажатие кнопки меню и выполнять тоже действие только не для своей формы, а для блокнота?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #23


Гость






Надо блокноту "подсунуть" обработчик событий, который будет реагировать на меню так, как ты хочешь, а не так, как заложено в Блокноте. Ибо из твоего приложения недоступно то, что нажимается в Блокноте, это разные процессы. Сообщения из его меню поступают в его очередь сообщений, а не в твою.

Гугл по темам "сабклассинг" и "суперклассинг" даст тебе информацию о том, как это делается smile.gif (Сабклассинг - это "контроль сообщений окон путем модификации их оконной процедуры", суперклассинг - "создание и регистрация нового класса окна в системе")
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Гуглил, гуглил и нагуглил smile.gif Тут описан сабклассинг своего же окна. Зачем?
И что значит
result := defwindowproc( wnd, msg, wparam, lparam );
Теорию вроде понял, буду разбираться с практикой )

Добавлено через 10 мин.
А вот сабклассинг другого приложения пока не нашел ((

Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #25


Гость






Странно... Первая ссылка Гугла выводит на Виноградный форум: "Сабклассинг и суперклассинг в Delphi для начинающих" smile.gif и по ссылке - дальше: Задача о сабклассинге "чужих" окон прямым инжектом
 К началу страницы 
+ Ответить 
сообщение
Сообщение #26


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


пасиб за ссылки)
получается что окнами могут быть и кнопка и эдит? и если получив хендл кнопки (пока не знаю как) то процедура SetWindowText заменит текст на кнопке?

Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #27


Гость






Цитата
получается что окнами могут быть и кнопка и эдит?
Естественно. Все наследники TWinControl (я про VCL сейчас) - это окна. И Эдиты, и ТекстБоксы, и Мемо, и Чекбоксы, чего там только нет... Любой из этих объектов находится через FindWindowEx или EnumWindows/EnumChildWindows. На досуге можешь попробовать поиграться: сделай форму с десятком компонентов, а потом из другой программы найди все компоненты smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #28


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Цитата
На досуге можешь попробовать поиграться
Обязательно smile.gif
А что такое HWND и THANDLE? какая разница?
И какая разница между PCHAR и STRING?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #29


Гость






Цитата
А что такое HWND и THANDLE? какая разница?
Технически - никакой. И то и другое - переименование типа Cardinal. Но... Смысл: THandle - это дескриптор какого-то объекта, HWnd - это дескриптор окна. И желательно не путать, потому что кто знает, всегда ли они будут являться одним и тем же типом... По крайней мере, когда я пишу под WinAPI на Аде, компилятор мне не позволяет подставлять один тип вместо другого, там где нужен HWnd, принимается только HWnd, и ничего другого, никаких THandle-ов.

О разнице String <-> PChar очень хорошо написано в Королевстве: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1206

Хм... По-моему, надо разделить тему. От "меню" уже перешли к общей информации о WinAPI smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #30


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Цитата
Хм... По-моему, надо разделить тему. От "меню" уже перешли к общей информации о WinAPI
ОК smile.gif будет еще 1 тема
СПАСИБО VOLVO ЗА ПОМОЩЬ!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V < 1 2
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.04.2024 7:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name