Jak obsługiwać kliknięcie myszą CEdit w formularzu nadrzędnym?

Jestem nowym użytkownikiem MFC (pochodzącym z C # i Java) i zastanawiam się nad tym.

Rozważmy okno dialogowe z trzema polami tekstowymi. Podklasowałem CEdit do CMyEdit, a trzy pola tekstowe są podłączone do zmiennych CMyEdit w klasie dialogowej.

Chcę, aby klasa okna dialogowego „wiedziała”, gdy jedno z trzech pól tekstowych zostało kliknięte lewym przyciskiem myszy. Znalazłem przykłady dodawania obsługi ON_WM_LBUTTONDOWN do mojej klasy CMyEdit. Działa świetnie, ale program obsługi jest tylko w klasie CMyEdit. Załóżmy, że za każdym razem, gdy kliknie się jedno z pól tekstowych, chcę, aby okno dialogowe wyłączało pozostałe dwa. Jak mogę otrzymać okno dialogowe z powiadomieniem o kliknięciu lewym przyciskiem myszy?

Jest to całkowicie wymyślony i uproszczony przykład. W rzeczywistości nie mam aplikacji, w której martwię się o kliknięcia lewym przyciskiem myszy w polach tekstowych. Ale myślę, że fakt, że nie mogę zrozumieć, jak to zrobić, wskazuje na fundamentalne niezrozumienie, jak radzić sobie ze zdarzeniami interfejsu użytkownika w MFC.

Pochodzę ze świata C #, gdzie wszystko jest zrobione dla mnie i mam bezpośredni dostęp do dowolnych zdarzeń, które chcę (uzyskać ostrość, podwójne kliknięcie myszką, cokolwiek). . W przypadku CEdit nie rozumiem, dlaczego udało mi się uzyskać fokus, zabić fokus, zmienić, a kilka innych jest dla mnie „bezpośrednio” dostępnych bez problemu, ale inne zdarzenia, takie jak kliknięcie myszką, nie są.

Ale wracając do mojego rzeczywistego pytania: w opisanym powyżej scenariuszu, jak mogę uzyskać okno dialogowe z powiadomieniem o kliknięciu lewym przyciskiem myszy w polach tekstowych? Czy pola tekstowe muszą podnosić zdarzenia lub wysyłać wiadomości (lub coś innego) do okna dialogowego?

questionAnswers(1)

yourAnswerToTheQuestion