Как создать диалог внутри окна?
От: AlexeyPetrov  
Дата: 04.01.08 13:56
Оценка:
При создании диалога в модальном (DoModal) и немодальном (Create) режимах он появляется в новом окне.
А как создать диалог (например, CAxDialogImpl) внутри существующего окна (CWindow)?
Re: Как создать диалог внутри окна?
От: Аноним  
Дата: 04.01.08 23:52
Оценка:
Здравствуйте, AlexeyPetrov, Вы писали:

AP>При создании диалога в модальном (DoModal) и немодальном (Create) режимах он появляется в новом окне.

AP>А как создать диалог (например, CAxDialogImpl) внутри существующего окна (CWindow)?

Воспользоваться ATL-классом CContainedWindow
Re[2]: Как создать диалог внутри окна?
От: AlexeyPetrov  
Дата: 06.01.08 05:24
Оценка:
А>Воспользоваться ATL-классом CContainedWindow

CContainedWindow используется для перенаправления сообщений окна в карту сообщений другого класса.

У меня же задача несколько иная: хочу создать окошко, где было бы несколько своих контролов и встроенный диалог с ActiveX-контролом, т.к. диалоги с ActiveX уже научился рисовать. Может, я что-то путаю и диалоги всегда появляются визуально в новом окне, т.к. по сути сами окном и являются? В таком случае можно, наверно, сделать проще: вставить ActiveX-контрол сразу в моё окно, но хотелось бы глянуть примерчик, как это делается, т.к. взялся за ATL/WTL всего пару дней назад.
Re[3]: Вопрос решён
От: AlexeyPetrov  
Дата: 06.01.08 14:26
Оценка:
Разобрался, как вставлять ActiveX-контролы без диалогов.
Оказалось, всё что мне было нужно:
RECT rect;
GetClientRect(&rect);
rect.bottom=rect.top+200;
CAxWindow2 axwnd;
axwnd.Create(m_hWnd, rect, NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 0, 1);
axwnd.CreateControl(_T("http://example.com"));
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.