- Придайте вашему CFormView стиль WS_CHILD
- Создайте его как диалоговое окно MODELESS с окном приложения в качестве родительского окна
- измените размер, чтобы он соответствовал клиентской области родителя, или измените размер родителя, чтобы он соответствовал этому.
Стиль WS_CHILD не является стилем по умолчанию для шаблона диалога, но вы можете добавить его.
это приведет к тому, что диалоговое окно будет отображаться внутри клиентской области главного окна фрейма, который вы создаете.
Возможно, вы также захотите добавить вызов к IsDialogMessage()
в ваш насос сообщений. Это необходимо, чтобы заставить клавишу TAB вести себя так, как вы ожидаете, в диалоге.
Редактировать ----
Я не программист MFC, поэтому я могу только догадываться, как бы вы поступили об этом в MFC.
Предположительно, у вас все еще есть шаблоны диалогов, поэтому вы должны войти в свой файл .RC
и удалите WS_POPUP и добавьте стиль WS_CHILD в ваше объявление шаблона. как это:
IDD_WHATEVER DIALOG DISCARDABLE 0, 0, 275, 217
STYLE DS_MODALFRAME | DS_3DLOOK | WS_CHILD | WS_VISIBLE
CAPTION "General"
FONT 8, "MS Sans Serif"
BEGIN
// etc
END
Немодальные диалоги создаются в Win32 с использованием CreateDialog
вместо DialogBox
в
MFC с использованием Create()
вместо DoModal()
.