MFC "Out of memory"
Есть диалоговое приложение. По нажатию на кнопку динамически создается еще одно диалоговое окно. В этом окне я редактором ресурсов добавила пару кнопок. Если в хэдере описать CButton button_VS, button_LMAXM; , а в .cpp привязать
DDX_Control(pDX, IDC_RADIO_VS, button_VS);
DDX_Control(pDX, IDC_RADIO_LMAXM, button_LMAXM);
то при создании окна, а именно внутри вызова Create(..) оно зацикливается где-то.. и потом выдает "Out of memory".
Но!! если описать и связать ТОЛЬКО ОДНУ из кнопок, но все замечательно работает.
Не поможете, плз??
Выложи код(папку Debug удали).
окно,то в обработчике нажатия кнопки не надо вызывать
Create.Допустим класс MyDialog(новый диалог).В класс главного диалога
добавляешь переменную MyDialog d, а обработчике кнопки
d.DoModal();
и все работает.:)
Цитата: m_Valery
Если добавлен класс нового диалога,в ресурсах есть новое диалоговое
окно,то в обработчике нажатия кнопки не надо вызывать
Create.Допустим класс MyDialog(новый диалог).В класс главного диалога
добавляешь переменную MyDialog d, а обработчике кнопки
d.DoModal();
и все работает.:)
окно,то в обработчике нажатия кнопки не надо вызывать
Create.Допустим класс MyDialog(новый диалог).В класс главного диалога
добавляешь переменную MyDialog d, а обработчике кнопки
d.DoModal();
и все работает.:)
не =) там приходится это дело создавать с помощью new, но это не важно.
если статически, то так и делаю. пасиб.
еще раз спасибо.
Код:
MyDialog *d;
В OnInitDialog пишешь
Код:
d = new MyDialog(this);
в обработчике кнопки пишешь
Код:
d->DoModal();
То же самое.
а для чего тогда вообще Create(....)??
или можно что-нить вроде
CDialog *d;
d = new CDialog;
d->Create(IDD_DIALOG_SELECT,NULL);
d->ShowWindow(SW_SHOW);
ы. это работает.. можно, значит.
но все-таки, зачем 2 варианта??
чтоб не создавать отдельный класс для диалога, если не надо??
Код:
BOOL Create( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );
BOOL Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );
BOOL Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );
Обе формы этой функции создают немодальный диалог на основе
шаблона, который находится в файле ресурсов.
Код:
virtual int DoModal( );
Спасиб, оценила.