Народ,подскажите,кто знает.Есть главное окно,на нем кнопка,по нажатию этой кнопки появляется модальное окно CDialog:
| Код | class CMyDialog:public CDialog{ private: CListBox *lb; CString str_dl; public: CMyDialog(UINT,CWnd *ptr=NULL); ~CMyDialog(); void OnOk(); BOOL OnInitDialog(); CString getSt(){ return str_dl; } };
|
С компонентом CListBox,в этом компоненте есть пару строк.Если пользов не выбрал ни одной строки и нажал на кнопку Ok(в диалоговом окне),то выскакивает сообщение что нужно выбрать строку
| Код | CMyDialog::CMyDialog(UINT id,CWnd *ptr):CDialog(id,ptr),lb(NULL){} BOOL CMyDialog::OnInitDialog(){ CDialog::OnInitDialog(); lb=new CListBox(); lb->Create(WS_CHILD|WS_VISIBLE|WS_TABSTOP|LBS_NOTIFY|WS_VSCROLL|WS_BORDER, CRect(100,10,150,70),this,ML);//создали лист_бокс lb->AddString("pol");//добавили строки lb->AddString("kol"); return true; } void CMyDialog::OnOk(){ if(lb->GetCurSel()==LB_ERR) AfxMessageBox("choice"); else{ lb->GetText(lb->GetCurSel(),str_dl); CDialog::OnOK(); } } CMyDialog::~CMyDialog(){ if(lb!=NULL)delete lb; }
|
Проблема состоит в тм,что CListBox не взаимодействует с пользователем.даже если я нажал кнопку Ok и не выбрал ни одной строки,диалоговое окно все равно закрывается.Пытался просто заполнить в обработчике OnOk переменную CString класса CMyDialog,а потом вывести ее в главном окне,тоже не идет Обработчик кнопки рассположенной на главном окне
| Код | void CMyFrame::OnButtonClck(){ CMyDialog cdd(IDD_MD);//создали диалоговое окно if(cdd.DoModal()==IDOK)//сделали его видимым str=cdd.getSt(); else str="text"; InvalidateRect(0); }
|
В чем ошибка?(хочу сделать без DDX) |