dailog-base приложение под MFC
? :P eto nichego ne daet - lish error...
что значит "официально"?
Генерю AppWizard'ом и все нормально
Покажи более детально, что там у тебя происходит. С кусками кода.
a pod "официально" ya podrazumeval sozdanie rabochei progi (vozmozhno s pomosh'u Wizarda) po vseobshe prinyatim pravilam dlya takogo roda prog...
(t.e. kak eto sozdaut VSE...)
2)virezau vse napisannoe Wizardom v InitInstance a takzhe izbavlyaus' ot Doc i View (kotorih ya poka ne znau :P) -no poslednee ne vsegda ...
3) vstavlyau v InitInstance CMyDialog *pD=new CMyDialog; pD->Create(IDD_DIALOG1); m_pMainWnd=pD; ShowWindow i update ne trogal...
4)s OnClose delau opisannoe ranee...
Так, как ты делаешь, нельзя. В InitInstance напиши :
CTestDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal;
if (nResponse == IDOK)
{
}
else
if (nResponse == IDCANCEL)
{
}
return FALSE;
BOOL CApp::InitInstance
{
AfxEnableControlContainer;
// 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 _AFLL
Enable3dControls; // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic; // Call this when linking to MFC statically
#endif
CAppDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal;
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}
ВСЕ!
Я долго ржал, когда увидел это в первый раз.
Ржал-то почему?
В 6-м VC это в первом же окошечке AppWiz (выбор между "Single document", "Multiple document" и "Dialog based"). Ежли у тебя не так, то переставь VC.
P u menya chego-to so zreniem... thx
Оставить комментарий
marizha
как его "официально" создать, а то созданные мною не зачищаются из taskmanager-а после закрытия, поэтому я в OnClose диалога вставляю:что обычно "убирает" мой процесс из taskmanager-а, но не всегда...а ExitInstance вроде бы не советуется запускать напрямую....