в конструкторе CMainFrame
.. Код:
childWnd=newCFrameWnd ;
в
CMainFrame::OnCreate
.. Код:
childWnd->Create(0,_T("output"))
..
при обработке пункта меню
Код:
if(childWnd->IsWindowVisible())
{
childWnd->ModifyStyle(WS_VISIBLE,NULL,0);
}
else
{
childWnd->ModifyStyle(NULL,WS_VISIBLE,0);
}
все нормально
но пользователь может убрать окно нажавши на крестик и все летит
модифицировал код
Код:
HWND hwnd=childWnd->GetSafeHwnd();
if(::IsWindow(hwnd))
{
if(childWnd>IsWindowVisible())
{
childWnd->ModifyStyle(WS_VISIBLE,NULL,0);
}
else
{
childWnd->ModifyStyle(NULL,WS_VISIBLE,0);
}
}
else
{
childWnd=new COutputFrameWnd;// может здесь быть утечка памяти???
childWnd->Create(0,_T("output"));
}
вобщем все работает но есть подозрение что должна быть утечка, хотя VS
ее не показывает
Вопрос как правильно сделать?
Еще один вопрос
Это окно должно вести себя так при таскании по экрану это должен быть
поплавок WS_POPUP ,при попадании в определенную область родительского
окна должно к нему приклеится стать WS_CHILD, а при двойном клике на
заголвке снова WS_POPUP
Кто-нибудь так делал?
С уважением Валерий