Многооконная программа

Я прочитал много статей на эту тему, некоторые из них были здесь, на stackoverflow, но ни в одной из них не было задано моего вопроса. Я постараюсь быть конкретным.

Мне нужно создать приложение (собственный WinAPI) с главным окном (окна класса "а"). Когда пользователь нажимает там кнопку, всплывает окно класса "b". Это может быть модально или нет, мне сейчас все равно.

Я попытался создать приложение с двумя оконными классами и двумя оконными процедурами. Но проблема в том, что когда я закрываю второе окно, все приложение закрывается.

Спасибо.


person G. Kashtanov    schedule 27.06.2010    source источник


Ответы (1)


Можно предположить, что оконная процедура для вашего второго окна основана на процедуре для главного окна, поэтому, когда она получает WM_DESTROY, она вызывает PostQuitMessage. Это нормально для окна верхнего уровня, поскольку пользователь ожидает, что его уничтожение будет означать выход из приложения. Однако для дочернего окна (модального или другого) это не так, поэтому дочерний элемент не должен не (опять же, обычно) вызывать PostQuitMessage в своем обработчике WM_DESTROY.

person Jerry Coffin    schedule 27.06.2010
comment
Спасибо, это было решение. На самом деле, я поменял местами имя класса и параметры заголовка в вызове CreateWindow (похоже, головная боль хорошо справляется со своей задачей). Таким образом, всплывающее окно использовало процедуру главного окна, которая имела вызов PostQuitMessage. В любом случае, спасибо. - person G. Kashtanov; 27.06.2010