• 全部
  • 问答

VC/MFC点击按钮并列弹出两个子窗口

marsevilkill 瑞智科技 开发工程师  2013-07-02 11:18:12
void CCARTransferDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
::SetWindowPos(this->m_hWnd,HWND_TOPMOST,10,10,10,10,SWP_NOMOVE|SWP_NOSIZE);//窗口最前端显示
//::SetWindowPos(this->m_hWnd,HWND_NOTOPMOST,10,10,10,10,SWP_NOMOVE|SWP_NOSIZE);//取消最前端显示
CCAR1 dlg1;
dlg1.DoModal();
CCAR2 dlg2;
dlg2.DoModal();
CCAR3 dlg3;
dlg3.DoModal();
CCAR4 dlg4;
dlg4.DoModal();
CCAR5 dlg5;
dlg5.DoModal();
CCAR6 dlg6;
dlg6.DoModal();
}
点击按钮之后六个子窗口不是同时显示的 怎么能让其同时显示?????
...全文
111 1 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
marsevilkill 2013-07-04
谢谢,结贴!
回复
青松2 2013-07-02
你这得用非模态对话框吧,6个非模态对话框同时显示出来。 非模态对话框的实现 新建一个基于对话框的应用程序Test,在资源视图中右键点击Dialog,在弹出菜单中选择“Inert Dialog”,然后根据类向导新建一个对话框相关的类dlg1, 在CTestDlg类前面添加dg1的声明语句,如下所示: class dlg1; class CTestDlg : public CDialog { .......... 然后在CTestDlg中添加一个变量:dlg1 *pdlg;并且在CTestDlg的构造函数中初始化为NULL,而且要在TestDlg.CPP的前面加上头文件#include"dlg1.h" 然后添加主对话框确定按钮的消息映射,代码如下 void CGeliangDlg::OnOK() { // TODO: Add extra validation here if((pdlg!=NULL)&&::IsWindow(pdlg->m_hWnd)) //判断对话框是否已被创建 { AfxMessageBox("对话框已经被创建"); pdlg->ShowWindow(SW_SHOW); //已被创建,直接显示 } else { pdlg=new dlg1(); //没有被创建,则创建对象 } if(!::IsWindow(pdlg->m_hWnd)) { pdlg->Create(IDD_DIALOG1,this); //创建对话框 pdlg->ShowWindow(SW_SHOW); //显示对话框 } // CDialog::OnOK(); } 在添加内存清理函数, 在类视图中右击dlg1,选中Add Virtual Function,弹出New Virtual Overrride for class dlg1对话框,选择PostNcDestroy,单击AddHandler按钮,单击Edit Exiting按钮,编写代码如下: void dlg1::PostNcDestroy() { // TODO: Add your specialized code here and/or call the base class delete this; // CDialog::PostNcDestroy(); } 至此已经完成了非模态对话框的显示与销毁了。
回复
相关推荐
发帖
机器视觉
创建于2007-08-27

3938

社区成员

图形图像/机器视觉
申请成为版主
帖子事件
创建了帖子
2013-07-02 11:18
社区公告
暂无公告