VC/MFC点击旋钮并列弹出两个子窗口
VC/MFC点击按钮并列弹出两个子窗口
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();
}
点击按钮之后六个子窗口不是同时显示的 怎么能让其同时显示?????
------解决方案--------------------
你这得用非模态对话框吧,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); //创建对话框
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();
}
点击按钮之后六个子窗口不是同时显示的 怎么能让其同时显示?????
VC/MFC 子窗口
同时显示
点击按钮
------解决方案--------------------
你这得用非模态对话框吧,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); //创建对话框