第一步:在主窗口中拉一人listbox控件;
第二步:拉一个按钮,为这个按钮编程如下,功能是启动一个非模态对话框
void CMy1Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CMydialog *dlg=new CMydialog;
dlg->Create(IDD_DIALOG1,this);
dlg->ShowWindow(SW_SHOW);
}
第三步:在非模态对话框中得到父窗口的指针,通过指针向父窗口添加数据
void CMydialog::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
CMy1Dlg *p=(CMy1Dlg *)GetParent();
p->m_listbox.AddString(m_edit2);
}
小结:GetParent()是得到父窗口的指针,对模态、非模态都有用。
非模态对话框退出时一般要用如下2个函数进行退出
void CMydialog::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
DestroyWindow();
}
void CMydialog::PostNcDestroy()
{
// TODO: 在此添加专用代码和/或调用基类
CDialog::PostNcDestroy();
delete this;
}