Имеем основное окно MFC программы.
Открываем немодальный диалог из ресурсов.
Пытаемся перевести его за основное окно (не выходит

).
Игра со стилями диалога и использование SetWindowPos ни чего не дает.
Честно говоря мой босс в америке тоже ни чего не смог предложить (хотя крутой программер).
Неужели надо запускать диалог в отдельном процессе?
Здравствуйте, Crimson, Вы писали:
C>Имеем основное окно MFC программы.
C>Открываем немодальный диалог из ресурсов.
C>Пытаемся перевести его за основное окно (не выходит
).
C>Игра со стилями диалога и использование SetWindowPos ни чего не дает.
C>Честно говоря мой босс в америке тоже ни чего не смог предложить (хотя крутой программер).
C>Неужели надо запускать диалог в отдельном процессе?
Мне не поверил — теперь у All'a спрашиваешь ? ( Сам знаешь, кто 8-)
Здравствуйте, Crimson, Вы писали:
C>Имеем основное окно MFC программы.
C>Открываем немодальный диалог из ресурсов.
C>Пытаемся перевести его за основное окно (не выходит
).
C>Игра со стилями диалога и использование SetWindowPos ни чего не дает.
C>Честно говоря мой босс в америке тоже ни чего не смог предложить (хотя крутой программер).
C>Неужели надо запускать диалог в отдельном процессе?
Смотри
Dialog Box Owner Window.
Если поставить owner'ом десктоп
CDialog::Create(IDD, GetDesktopWindow());
, то будет прятаться за основное окно, но там есть свои недостатки
There are 10 types of people in the world, those who don't understand binaries, those who do, and those who understand not only binaries.
Здравствуйте, Crimson, Вы писали:
C>Имеем основное окно MFC программы.
C>Открываем немодальный диалог из ресурсов.
C>Пытаемся перевести его за основное окно (не выходит
).
C>Игра со стилями диалога и использование SetWindowPos ни чего не дает.
C>Честно говоря мой босс в америке тоже ни чего не смог предложить (хотя крутой программер).
C>Неужели надо запускать диалог в отдельном процессе?
Честно говоря не знаю, была такая же проблема сделали следующим образом:
BOOL CDemoAppApp::InitInstance()
{
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
CDemoAppDlg dlg;
m_pMainWnd = &dlg;
// Create window for videowindow
DLGTEMPLATE *pDlgTemplate=reinterpret_cast<DLGTEMPLATE*>(
LockResource(
LoadResource(AfxGetInstanceHandle(),
FindResource(AfxGetInstanceHandle(),(LPSTR)IDD_VIDEOWINDOW,RT_DIALOG))));
if(!pDlgTemplate)return E_FAIL;
CMyDlg *pMyDlg = new CMyDlg;
MyDlg->CreateIndirect(pDlgTemplate);
dlg.m_MyDlg = pMyDlg;
int nResponse = dlg.DoModal();
pMyDlg->DestroyWindow();
delete pMyDlg;
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}
а дальше — ShowWindow(SW_SHOW) || ShowWindow(SW_HIDE).
А вообще-то хотелось бы еще варианты увидеть.