简单的mfc链接对话框,修改标题问题 mfc对话框 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要我做,我是不会用这么粗的逻辑的要我做,我会这么做void CChouqianmfcDlg::OnAddColBtn(){ CAddInfoDlg mdlg; mdlg.DoModal();}如果要用非模态,我会把 CAddInfoDlg *mdlg;设置成CChouqianmfcDlg的变量,然后在构造函数里mdlg=NULL;再然后void CChouqianmfcDlg::OnAddColBtn(){ if(!mdlg) { mdlg=new CAddInfoDlg; mdlg->Create(IDD_ADDINFO_DLG); mdlg->SetParent(this); } mdlg->ShowWindow(TRUE);}然后,我会相应CAddInfoDlg类的OnOK函数void CAddInfoDlg::OnOK(){ UpDateData(TRUE); PostMessage(GetParent()->m_hWnd,12345,(WPARAM)&m_data,0); 如果非模态那么就隐藏窗口ShowWindow(FALSE); 如果是模态就直接CDialog::OnOK();}然后,我会在CChouqianmfcDlg类里弄个消息函数来实现插入功能void CChouqianmfcDlg::OnInsert(WPARAM wp,LPARAM lp);{ CString *ss=(CString *)wp; m_List.InsertColnum(colnumm,*ss,LVCFMT_LEFT,150,0); colnum++;} 不好意思,刚刚代码是截图的,我把代码重新贴一下void CChouqianmfcDlg::OnAddcolBtn() { // TODO: Add your control notification handler code here CString tempcol; CAddinfoDlg *m_dlg; m_dlg=NULL; if (!m_dlg) { m_dlg = new CAddinfoDlg; m_dlg->Create(IDD_ADDINFO_DLG); m_dlg->GetDlgItem(IDC_EDIT1)->SetWindowText("请输入新的列名"); m_dlg->SetWindowText("添加新列"); m_dlg->ShowWindow(SW_SHOW);//请输入:宽度#内容 if(m_dlg->OnOK){ m_dlg->UpdateData(true); tempcol=m_dlg->m_data; m_list.InsertColumn(colnum,tempcol,LVCFMT_LEFT,150,0); colnum++;} } else m_dlg->SetActiveWindow();//激活窗口} m_dlg = new CAddinfoDlg; m_dlg->Create(IDD_ADDINFO_DLG); m_dlg->GetDlgItem(IDC_EDIT1)->SetWindowText("请输入新的列名"); m_dlg->SetWindowText("添加新列"); m_dlg->ShowWindow(SW_SHOW);//请输入:宽度#内容 if(m_dlg->OnOK){因为你这是模态对话框, 一运行起来, 对话框是显示了, 但是程序执行到 if(m_dlg->OnOK){的时候, 你肯定是什么都还没有输入.结果就是没有结果.你应该使用模态对话框. 如4楼 双缓冲 文字不显示?????? 很happy, Boss说圣诞节放一天假! 奇怪的问题,高手救命呀 如何把硬盘上的文件用socket发送出去 动态的显示工具条上相应的按钮的灰显状态 简单的问题,try ...catch 失效再CStdioFile中 在CFileDialog选择多个文件,如何得到它们的路径? 一个小小的问题, OpenFile有没有Unicode对应的函数 请问如何在MFC应用程序中添加Flash-lite控件? MFC用ODBC连接数据库怎么调用存储过程 VS2010下如何创建支持MFC的ATL DLL
要我做,我会这么做
void CChouqianmfcDlg::OnAddColBtn()
{
CAddInfoDlg mdlg;
mdlg.DoModal();
}
如果要用非模态,我会把
CAddInfoDlg *mdlg;
设置成CChouqianmfcDlg的变量,然后在构造函数里mdlg=NULL;
再然后
void CChouqianmfcDlg::OnAddColBtn()
{
if(!mdlg)
{
mdlg=new CAddInfoDlg;
mdlg->Create(IDD_ADDINFO_DLG);
mdlg->SetParent(this);
}
mdlg->ShowWindow(TRUE);
}然后,我会相应CAddInfoDlg类的OnOK函数
void CAddInfoDlg::OnOK()
{
UpDateData(TRUE);
PostMessage(GetParent()->m_hWnd,12345,(WPARAM)&m_data,0);
如果非模态那么就隐藏窗口ShowWindow(FALSE);
如果是模态就直接CDialog::OnOK();
}然后,我会在CChouqianmfcDlg类里弄个消息函数来实现插入功能
void CChouqianmfcDlg::OnInsert(WPARAM wp,LPARAM lp);
{
CString *ss=(CString *)wp;
m_List.InsertColnum(colnumm,*ss,LVCFMT_LEFT,150,0);
colnum++;
}
{
// TODO: Add your control notification handler code here
CString tempcol;
CAddinfoDlg *m_dlg;
m_dlg=NULL;
if (!m_dlg)
{
m_dlg = new CAddinfoDlg;
m_dlg->Create(IDD_ADDINFO_DLG);
m_dlg->GetDlgItem(IDC_EDIT1)->SetWindowText("请输入新的列名");
m_dlg->SetWindowText("添加新列");
m_dlg->ShowWindow(SW_SHOW);
//请输入:宽度#内容
if(m_dlg->OnOK){
m_dlg->UpdateData(true);
tempcol=m_dlg->m_data;
m_list.InsertColumn(colnum,tempcol,LVCFMT_LEFT,150,0);
colnum++;}
}
else
m_dlg->SetActiveWindow();//激活窗口
}
m_dlg->Create(IDD_ADDINFO_DLG);
m_dlg->GetDlgItem(IDC_EDIT1)->SetWindowText("请输入新的列名");
m_dlg->SetWindowText("添加新列");
m_dlg->ShowWindow(SW_SHOW);
//请输入:宽度#内容
if(m_dlg->OnOK){因为你这是模态对话框, 一运行起来, 对话框是显示了, 但是程序执行到 if(m_dlg->OnOK){的时候, 你肯定是什么都还没有输入.
结果就是没有结果.你应该使用模态对话框. 如4楼