• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Вопрос по сообщениям окна!

  • Автор темы akahan
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

akahan

Вопрос по сообщениям окна!Привет всем!
Такой вопрос:
Я суперклассирую EDIT. Мне нужно из WndProc моего контрола отследить когда длина текста в MYEDITе равна 0.
Допустим, я могу это отследить из родительского окна с помощью EN_UPDATE или EN_CHANGE, но как мне это сделать из WndProc моего контрола?
Я думаю можно отслеживать с помощью отлова WM_KEYDOWN, но, ведь, текст можно вставить из clipboard, тогда еще нужно отслеживать WM_PASTE и тд. Должно же быть более оригинальное решение!
С помощью каких сообщений окна это можно отследить?
Посоветуйте, ГУРУ!!! :D
 
Z

zubr

Можно в классе своего контрола создать статическую процедуру обработки сообщений родительского окна типа static LRESULT CALLBACK ParentWindowProc и с помощью GetWindowLong, SetWindowLong сабклассировать его.
 
A

akahan

Спасибо за совет, но так не получится! Подумайте сами, таких котролов может быть несколько, и у них могут быть разные родители, а процедура одна. Так не выйдет!
Нужно каким то образом отследить изменения контрола, а как не понятно!
 
Z

zubr

Можно воспользоваться макросами ON_NOTIFY_REFLECT или ON_NOTIFY_REFLECT_EX - они отражают сообщения родительского окна на дочернее.
 
A

akahan

Вся фишка в том, что я не использую ни ATL ни MFC. Я пишу в С++ и использую чистый Win API.
Мне, кстати, в другом форуме посоветовали решение этой проблемы. Создается два контрола, один невидимый, который принадлежит диалогу, а мой контрол принадлежит этому невидимому контролу. Невидимый контрол слушает нотифи EN_CHANGE от моего контрола и перенаправляет их и обратно, и далее. Вот и все! Думаю тему мона закрыть!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!