2010-08-18 5 views
3

일부 아이콘이있는 툴바가있는 윈도우를 만들었으며 기본 윈도우에서 사용 가능한 아이콘을 클릭하면 하나의 윈도우가 추가로 시작됩니다.클래스 (하위 창) 소멸자가 호출되지 않음

첫 번째 창은 CreateWindowEx 메서드를 사용하여 만듭니다. 아이콘을 사용하여 클릭 한 대화 상자 리소스가 만들어졌습니다. 대화 상자를 닫지 않고 바로 주 창을 닫습니다. 대화 상자 창이 닫히지 않습니다. 디버깅 할 때 두 번째 창의 소멸자가 제어되지 않습니다.

개별적으로 (즉, 먼저 대화 상자를 닫은 후) 다음 기본 창을 닫으면 모든 것이 정상입니다.

주 창을 닫을 때 누락 될 수있는 점을 알려주십시오.

나는 클래스 desructructor가 호출되지 않는다는 것을 의미합니다.

+2

음, 창문에는 소멸자가 없습니다. 정확히 무슨 뜻이야? –

+0

당신은 분명히 Windows API를 래핑하는 C++ 프레임 워크를 사용하고 있습니다. 프레임 워크가 혼란 스러울 수있는 여러 가지 방법이 있습니다. ATL, WTL 및 MFC *는 매우 신뢰할 수 있어야합니다. 다른 것들은 out-of-order 파괴와 혼동을 일으킬 수 있습니다. 어느 쪽을 참조하십니까? –

답변

1

메인 윈도우의 메시지 WM_CLOSE을 처리하고 대화창이 열려 있는지 여부를 확인하십시오. 대화 상자 창이 열리면 리소스에서 리소스를로드하는 동안 반환 된 핸들을 사용하여 닫습니다.

관련 문제