Mam instrukcję obsługi OnMove w mojej klasie dialogowej, która wykonuje pewne rzeczy z obiektami kontrolnymi (np. CButton). Stwierdzam, że ten program obsługi jest wywoływany przed wywołaniem okna dialogowego OnInitDialog, a więc gdy próbuję wywołać metody na kontrolkach podrzędnych, otrzymuję ASSERTS w debugowaniu, ponieważ formanty jeszcze nie istnieją ... są one tworzone w OnInitDialog .Jak stwierdzić, czy zostało utworzone/zainicjowane okno dialogowe MFC?
Są dwie rzeczy, które chciałbym, aby móc sprawdzić:
- Jak mogę powiedzieć dialog został zainicjowany?
- Jak mogę sprawdzić, czy pojedyncze okno obiektu kontrolnego CWnd zostało utworzone?
W obu przypadkach szukam członków klasy lub wyników wywołania metody, których można użyć.
Nie chcę napisać kod niestandardowy, więc 2 brzmi korzystne. Czy są inni członkowie, których mógłbym przetestować? –
GetSafeHwnd(), ale to tylko opakowanie wokół :: IsWindow(). Pod względem zorientowania na obiekt uważam, że jest ładniejszy niż ręczne odpowiadanie na uchwyt - podoba mi się kontrola "niskiego poziomu" kontroli osobiście. – Roel
'GetSafeHwnd()' nie jest opakowaniem wokół 'IsWindow()' - jest opakowaniem wokół 'm_hWnd' - niestandardowym C++ do testowania, czy' this' ma wartość null, i zwraca 'm_hWnd' lub' null'. 'm_hWnd' może mieć wartość inną niż null, ale nie być oknem (tak jak uchwyt pliku może nie być pusty, ale plik powinien być zamknięty) – Mordachai