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

Тема в разделе "MS Visual C++", создана пользователем akahan, 11 фев 2007.

Статус темы:
Закрыта.
  1. akahan

    akahan Гость

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

    zubr Гость

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

    akahan Гость

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

    zubr Гость

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

    akahan Гость

    Вся фишка в том, что я не использую ни ATL ни MFC. Я пишу в С++ и использую чистый Win API.
    Мне, кстати, в другом форуме посоветовали решение этой проблемы. Создается два контрола, один невидимый, который принадлежит диалогу, а мой контрол принадлежит этому невидимому контролу. Невидимый контрол слушает нотифи EN_CHANGE от моего контрола и перенаправляет их и обратно, и далее. Вот и все! Думаю тему мона закрыть!
     
Загрузка...
Похожие Темы - Вопрос по сообщениям
  1. ApplePen
    Ответов:
    0
    Просмотров:
    64
  2. gURaBA_N
    Ответов:
    3
    Просмотров:
    94
  3. kartaman
    Ответов:
    0
    Просмотров:
    128
  4. Peter
    Ответов:
    4
    Просмотров:
    524
  5. di0d_
    Ответов:
    1
    Просмотров:
    440
Статус темы:
Закрыта.

Поделиться этой страницей