MFC按钮触发事件中如何关闭其它类的对话框,是需要获取其他类的指针吗?代码要怎么写?

我想在点击OnButton1时关闭本对话框和其他的CDlg1,CDlg2,CDlg3关联的对话框,我是这样写的CDlg1::EndDialog(0);CDlg2::EndDialog(0);CDlg3::EndDialog(0);然后弹出错误is not a class or namespace name,应该如何解决?

0

6个回答

最简单的,定义成全局变量,用enddialog或者sendmessage(那个窗口的handle, wm_close,0,0)

0

想在点击OnButton1时关闭本对话框和其他的CDlg1,CDlg2,CDlg3关联的对话框,我是这样写的CDlg1::EndDialog(0);CDlg2::EndDialog(0);CDlg3::EndDialog(0);然后弹出错误is not a class or namespace name

0

加上namesapce name,然后调用各个类。或者你可以通过消息机制来触发关闭。让vs运行多个对话框,然后在每个对话框类中增加一个消息机制,当本对话框操作某个按键关闭本对话框的同时触发其他对话框触发。

0

需要获取要关闭的对话框指针,然后再用此指针去调用EndDialog。

0

1、在OnButton1对应的类中获取\添加CDlg1,CDlg2,CDlg3的实例,然后关闭实例。
2、在OnButton1对应的类和CDlg1,CDlg2,CDlg3对应的类中添加消息处理函数,OnButton1分别发送关闭消息到三个窗口类中。

0

可以给其它窗口发送WM_CLOSE消息,前提是你需要得到他们的HWND窗口句柄或者CWnd*指针。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MFC获取各个窗口(体)之间的指针(对象)
MFC在很多的对话框操作中,我们经常要用到在一个对话框中调用另一个对话框的函数或变量.可以用如下方法来解决.    HWND hWnd=::FindWindow(NULL,_T("Sphere"));      //得到对话框的句柄    C***Dialog* pWnd= (C***Dialog*)C***Dialog::FromHandle(hWnd); //由句柄得到对话框的对象指针
MFC View类对话框类之间指针的相互获取
这里主要是总结一下我自己用到过的不同类之间指针的获取方法: 1.基于对话框的应用程序,通过菜单命令来显示一个模态对话框: 该模态对话框如何获取主对话框的指针,在模态对话框类需要调用主对话框处添加如下代码: CVersionManageDlg *m_dlg=(CVersionManageDlg *)this->GetParent();//获取CVersionManageDlg类主对
获得MFC窗口其它类指针的方法
获得MFC窗口其它类指针的方法 获得CWinApp: -在CMainFrame,CChildFrame,CDocument,CView中直接调用AfxGetApp()或用theApp -在其它类中只能用AfxGetApp() 获得CMainFrame: -在CMinApp中用AfxGetMainWnd()或者m_pMainWnd -在CChildFrame中可用GetParentFram...
MFC ListBox,ComboBox笔记
新建Dlg,在Dlg中绘制ListBox和ComboBox; 然后再BOOL CDlg2::OnInitDialog()  { CDialog::OnInitDialog(); // TODO: Add extra initialization here //初始化ListBox和ComboBox数据 m_ComboBox.AddString("20~25");
MFC 窗口创建与销毁过程中发生的一些事情...
应用MFC最关键的就是窗口的创建与销毁,那么在这个两个过程中都发生了一些什么呢? 1,创建 创建模态窗口://创建一个模态对话框 CTestDialog td; td.DoModal(); 备注: 可以创建一个布局模态对话框类变量,不用担心它会随着所在函数返回而被销毁。因为DoModal()函数的一个功能是,当前只能运行此模态对话框,且停止主窗口的运行,直到模态对话框退
【MFC】对话框类的控件如何获取其他对话框类的控件变量的值
【MFC】对话框类的控件如何获取其他对话框类的控件变量的值 ——————通过全局变量的使用来获取对话框的指针—————— 问题描述:假设CMyDialog为对话框类1,CLoginDialog为对话框2,对话框1的IDC_STATIC2控件要获取对话框2的控件变量m_name 1.先在CLoginDialog.cpp中声明一个全局变量:CLoginDialog* pLogin; // 注意:这里...
vc++ 响应关闭按钮退出程序事件
case WM_CLOSE: //点击确定按钮退出程序 if (IDOK == MessageBox(hWnd, "是否退出程序", "提示", MB_OKCANCEL | MB_ICONINFORMATION)){ PostQuitMessage(WM_QUIT);//退出程序 } break; 点击标题栏右边的关闭按钮“红叉”时,程序会向窗口发送WM_CLOSE消息,因此可以截取此
MFC对话框应用程序关闭时,退出提示功能的添加
首先创建对话框应用程序,然后去资源视图(如下图) 右击添加类,创建相关类名,完成; 然后右击属性,在属性栏就能看到消息事件(如下图) 找到WM_CLOSE消息,添加On_Close。跳转到.cpp文件,添加如下代码即可: void CTest::OnClose() { //TODO:在此添加消息处理代码 if (MessageBox(L"确定要退出程序吗?",L"退...
mfc如何访问其他类中的控件变量
问题:A对话框中有列表控件(m_list),按钮弹出B对话框,B对话框中有edit控件(m_id,m_type,m_name),想要实现B中edit控件中的内容按钮显示在A中的列表里? 1.在B.h中添加: class CA; public中添加: CA* dlg; void GetDlg(CA* d); //窗口指针获取函数 在B.cpp中添加: void CA::GetDlg(...
MFC获取主对话框指针的方式
CWnd* pMainDlg = AfxGetMainWnd(); CWnd* pMainDlg1 = AfxGetApp()->GetMainWnd(); CWnd* pMainDlg2 = theApp.m_pMainWnd; CWnd* pMainDlg3 = FindWindow(NULL, "dynamicDialogTest");
VS2015+MFC 双击控件弹出“建立类向导”,而不能进入**Dlg.cpp问题的解决办法
在网上找了许多办法都不成功,直到看见百度知道上的回答:https://zhidao.baidu.com/question/808502329432891012.html 才成功解决,在此,复述一下其解决方案: (1)打开**Dlg.h文件,在第17行左右找到这行代码 enum { IDD = IDD_***_DIALOG } (2)回到对话框界面,查看对话框的ID,检查其是否与这个IDD...
MFC 一个对话框调用另一对话框中的控件和函数
一个对话框类:Copen.cpp    调用COTH_RadarNodeDlg.cpp中的OnSelfShoreName()函数 COTH_RadarNodeDlg *plg =(COTH_RadarNodeDlg*)GetParent(); plg->OnSelfShoreName();
对话框其他类中获取对话框指针
比如新增加一个类,在类中需要调用对话框中的一个函数 或者在普通函数(而非对话框成员函数)中设置对话框控件 归根结底,就是需要先获取对话框的指针 方法1:(其实两个方法一样,写法不同而已) //直接获取 CDlg* pDlg = (CDlg*)theApp.m_pMainWnd; if (NULL != pDlg) pDlg->EnableMainMenu(bT...
【MFC-6】VS2010编程之点击关闭对话框时提示是否退出
一、开发环境 1、VS2010; 2、C++ / MFC; 二、关闭提示 对话框默认点击关闭时,不采取任何操作,如果需要提示程序退出或者退出前进行其他操作,则可以类向导中重载主框架CMainFrame的WM_CLOSE消息,修改响应函数。如下面代码,当点击关闭时提示是否退出: void CDLCDlg::OnBnClickedOk() { // TODO
MFC 模态、非模态窗口引发的系列事件及函数
标题一:创建模态窗口 标题二:创建非模态子窗
mfc:单文档中对话框类调用视图类和框架类成员变量的实例
建立一个单文档mfc程序,设计一个菜单按钮,可以弹出一个对话框。在对话框中使用视图类和框架类中的变量。 界面如下对话框图:框架类的成员变量index:视图类的成员变量m_str:button1的响应函数//选择下拉列表的一项,在编辑框中显示出来。其中用到index和m_str void CDialog1::OnBnClickedButton1() { // TODO: 在此添加控件通知处理
MFC双击Button没有进入事件代码,而是弹出“添加类向导”窗口
  问题:当双击 Button 时,没有进入 OnBnClickedButton1() 事件,而是弹出了一个“添加类向导”的窗口,如下图所示: 原因:是因为我修改了窗口的 ID,如下所示:   解决办法:到 xxx.Dlg.h 头文件中,找到“对话框数据”,下面有一个 enum{},将其中的 ID 改为窗口实际的 ID 就可以了,如下: 改为 ...
MFC 外部普通函数获取类对象指针来调用类的成员函数
//外部普通函数获取内部类对象指针,这种方法不行,可以通过this全局变量来达到这个目的 //CActiveXVidyoCtrl *pDlg123 = (CActiveXVidyoCtrl*)(AfxGetApp()->GetMainWnd()); XXDlg *g_pDlg = NULL;//全局变量 xxx::XXX()//构造函数 { g_pDlg = this; }
两种实现点击'对话框'以外的区域,'对话框'消失的方法。
html: <div class="wrap"> <div class="content"> </div> </div> 第一种思路:当前点击的对象不是对话框本身,则让对话框消失 var wrap = document.getElementsByClassName('wrap')[0]; var conten...
Android问题Button的onClick监听里,如何调用外部类的方法(2048实现重新开始游戏)
1,这两天在写2048安卓版,跟着网上的资料一步步敲代码,能够完成2048主要功能逻辑,但是想更加优化,增加两个按钮,一个退一步、一个重新开始 2,问题就出在重新开始,按钮已经在xml里写好,在MainActivity里也已经初始化并添加了监听事件。但是在监听事件里无法调用外部类方法。 3,为什么要调用外部类方法呢?外部类是GameView类,继承了GridLayout,里面有一个startG
VC MFC类中获得其它类指针
VC MFC类中获得其它类指针VC MFC类中获得其它类指针VC MFC类中获得其它类指针VC MFC类中获得其它类指针VC MFC类中获得其它类指针VC MFC类中获得其它类指针VC MFC类中获得其它类指针
MFC中如何自定义点击关闭窗口的操作
就是点击那个X以后的一些操作,我需要加一些东西以后在再关闭,怎么弄啊?
新建一个基于对话框的MFC程序, 按空格键发现程序退出。
仔细看看, 发现按空格键的时候, 相当于点击 对话框上面tab顺序最靠前的按钮(比如tab键最前的是cstatic,则安装tab键顺序往后面寻找,一直找到按钮位置)。 这个估计是windows默认得处理吧。
MFC多文档--在对话框中获取视图指针
第一步: 先在对话框的头文件(***Dlg.h)中定义两个变量: CMDIChildWnd* pChild; CTempCur* pView; //CTempCur是要获取视图的类名 第二步: 在***Dlg.cpp中添加以下两条语句: pChild = (CMDIChildWnd*)((CFrameWnd*)AfxGetApp()->m_pMainWnd)->GetActiveF
MFC 对话框项目 添加按钮点击事件
http://c.biancheng.net/cpp/html/3072.html
MFC新建的对话框如何添加、重写初始化代码
如题,主对话框新建了一个参数设置对话框,在主对话框中一些控件的初始化代码可以在OnInitDialog函数中添加,如下 但是在子对话框中的cpp文件中却找不到这个OnInitDialog函数,看来得自己添加初始化代码了,方法如下: 1、类视图 ---> 右键对话框类 ---> 属性--->重写---->添加 OnInitDialog 2、在对应的初始化函数中添加初始化代码即可
一个对话框中调用另一个对话框的成员变量
   两个对话框,从属于不同的类;如:CTestDlg和CSimDlg。要在CSimDlg中调用CTestDlg的成员变量m_test。 方法一    首先在CSimDlg 的SimDlg.h里定义CTestDlg testdlg;还有添加头文件#include “TestDlg.h” 然后在CSimDlg 的SimDlg.cpp里就可以直接调用改变量testdlg.m_test 方...
VC++ 对话框退出按钮 源代码
如果是对话框,CDialog::OnOk(); CDialog::OnCancel();都是退出,内部调用了 EndDialog()。如果是FrameWnd,使用 PostQuitMessage;对话框也可以使用 PostQuitMessage
MFC点击对话框的X按钮使其最小化
MFC点击对话框的X按钮使其最小化,例如像360,qq这样。 所使用的开发工具为VS2010,在类向导中添加消息。OnSysCommand void CMy20161020Dlg::OnSysCommand(UINT nID, LPARAM lParam) { switch(nID) { case SC_CLOSE: ShowWindow(SW_MINIMIZE
MFC 在其他的类中引用Dlg类方法
不能直接引用,因为类方法是非static的。 ((CtcpclientDlg*)theApp.GetMainWnd())->addLog(str);
MFC实现菜单弹出对话框,并在对话框中实现控件触发
首先我们要新建一个mfc工程,实验工具是vs,选择图中选项然后下一步当中,设置成基于对话框然后可以完成,也可以继续下一步设置窗口的一下小部件。1.第一步,我们要在窗口上添加菜单。找到资源视图,右键添加资源。选择menu,新建之后,输入自己想要的菜单名最后在添加图中所缺代码:        CMenu menu; menu.LoadMenu(IDR_MENU1);  //IDR_MENU1为菜单栏I...
Button点击事件的四种实现
Button点击事件的用四种方法实现,分别是:1.匿名内部类实现;2.Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法;3.自定义点击事件监听类;4.在xml里利用反射调用方法
Visual Studio 2017 MFC 对话框添加方法 对话框添加失败
VS2017MFC的对话框创建后,右键添加类失败,显示文件不存在,查看网上各方资料后,并没有找到正确版本的文件,所以只能手动尝试为对话框创建并添加类。下面将遇到的主要问题以及解决方法介绍如下(以下方法为手动创建对话框类的方法)。本方法是根据CABOUTDLG类及其对话框实现的,小白们可以自行查看尝试。 1.    创建对话框(IDD_TEST)后,右键添加类,弹出报错对话框(这就是我们遇到的
如何安全删除基于对话框的MFC中控件的事件处理程序
如上图,要删除的为“启动服务”按钮控件,其ID为 IDC_START,此控件已存在一个事件处理程序,先打算将其删除。 共需删除三个地方的代码。 第一,事件处理程序的原代码。 第二,事件处理程序的原代码所在源文件中的 BEGIN_MESSAGE_MAP—END_MESSAGE_MAP中的相应代码。 第三,相应的头文件中的与事件处理程序相
VC++6.0中导入其他工程的对话框资源与CXXXDlg类
这里以基于MFC的对话框工程: Hello为例,将工程Hello里的对话框资源IDD_HELLO_DIALOG和对应的类CHelloDLg,导入到myWord对话框中。   1)首先要生成一个*.ogx的文件。   在ClassView面板,右击CHelloDlg –》Add to Grallery –>OK,如图(1)所示: 图(1)右击CXXXDlg –> Add to Grallery导
VS2017、MFC实现点击退出按钮,弹出提示对话框,确认退出或不退出程序
在按钮响应函数处编辑以下代码: // TODO: 在此添加控件通知处理程序代码 UINT i; i = MessageBox(TEXT("确认要退出程序吗?"), TEXT("温馨提示"), MB_YESNO | MB_ICONQUESTION); if(i == IDNO) { return; } CDialogEx::OnOK(); 实现如下效果: 单击“是”,退出程序 ...
vs2013版MFC按钮点击无反应,执行不到相应的事件处理程序
大家在使用MFc编程的时候,可能会遇到:点击添加的按钮无反应,或者执行不到相应的事件处理程序。以笔者的经验来看,出现这种问题多半是由于该按钮的底层属性值错误,或者该按钮的ID号与相应的ID值不对应造成的。下面笔者举个简单的例子,来说明这些问题。
[MFC][原创]回调函数实现流程具体实现过程
日志   [MFC][原创]回调函数实现流程具体实现过程  [MFC][原创]回调函数实现流程具体实现过程  第一步:在类成员中或者全局成员声明回调指针 typedef void(*CallBackDelegate)(int a);//回调函数,CallBackDelegate可以随便取建议取的名字有意义,a是参数,这里可以添加任意多的参数,更多参数可以用个结构体 ...
VS2010&MFC对话框编程(4)——通用对话框
1 简要     MFC提供公用对话框类包括以下几种:     CColorDialog类:                     用于选择颜色对话框     CFileDialog类:                        ........实现打开和保存文件对话框     CFindReplaceDialog类:       ........查找和替换文本     CFont
MFC非模态对话框中,点击Button启动另一个模态对话框,弹出“不支持尝试执行的操作”
>>===问题现象===<< 正在做的一个命令启动后,会打开一个非模态对话框A,点击其中的一个Button按钮,会DoModal()另一个模态对话框B。 但从某一个变更集开始,启动命令点击Button后会弹出“不支持尝试执行的操作”的提示对话框,点该对话框的“确定”后,继续弹出“不支持尝试执行的操作”。 对话框B在多个地方都会启动,也有从其他对话框DoModal()打...