MFC,非模态对话框怎么它不重复显示?就是第二次点击,显示原来那个

就这么简单扼要。求指导吧

    将对话框指针做成父窗口类成员变量。

    在按钮响应消息里面,ShowWindow之前:

if(p_dlg==NULL)//没创建
{
    p_dlg = new xxxxx;
}
p_dlg->ShowWindow(.....);

将new和create放在if里面。

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-04-29
如果调用了ShowWindow函数,需要在关闭窗口写一个DestroyWindow()函数来清除窗口。

MFC,非模态对话框怎么它不重复显示?就是第二次点击,显示原来那个
将对话框指针做成父窗口类成员变量。在按钮响应消息里面,ShowWindow之前:if(p_dlg==NULL)\/\/没创建{ p_dlg = new xxxxx;}p_dlg->ShowWindow(...);将new和create放在if里面。

MFC 如何判别非模态对话框已创建 ,如何防止生成同样的对话框?
初始赋值为null,如果对话框打开给g_pdlg赋值,在打开对话框之前判断g_pdlg是否为null就行了,不为null就不再打开,关闭对话框的时候给g_pdlg赋值为空

MFC如何弹出新对话框的同时隐藏当前对话框并且关闭新对话框后出现之前对...
如果是模态的对话框,那么上一个不关闭就可以了,直接按钮消息里面弹出下一级对话框,那么下级对话框关闭,上一级自然在最前面。如果是非模态,比较好管理,只要做好几个对话框的ShowWindow的管理就可以了。看你是那种对话框。

求解:MFC里在一个对话框里点击某个BUTTON,显示另外一个对话框。
你第一种方法叫“非模态”对话框调用,这种方法你的使用有问题,最好使用指针调用,确保子对话框窗口始终有效。修改后的是模态对话框,这个在调用代码上没有问题。对话框不出现,应该是子对话框控件有问题或者初始化代码有问题,检查子对话框使用的控件和InitDialog里面的代码。另外,可以用一个完全空的(...

MFC怎么点击让另一个对话框显示
首先要看你对话框是模态还是非模态。以模态为例:按钮响应消息函数最后增加代码:CDialog::OnOk();在调用该对话框处调整如下代码:CDialog dlg1,dlg2;if(dlg1.DoModal()==IDOK)dlg2.DoModal();

mfc开发的程序如何实现非模态对话框随窗口移动,最好能够给出一个详细...
回答:在窗口的WM_MOVING的消息响应中,调用非模态对话框的MoveWindow函数,或者SetWindowPos函数都可以,当然,这个非模态对话框应该是该窗口的一个成员变量且已被创建

mfc关闭非模态对话框
一般对话框有个“取消”按钮,响应这个按钮函数,注释掉里面默认的oncancel代码,替换为 ShowWindow (SW_HIDE);这样就隐藏了对话框。下一次,只需要调用ShowWindow(SW_SHOW);\/\/就可以重复打开

MFC创建非模态对话框时,除非将对话框置在最顶层,否则对话框无法显示,总...
不知道你的主窗口是什么类型窗口,我用一个对话框做主窗口,在对话框上放一个按钮,然后按下按钮后调用你的代码,把&wndNoTopMost改为NULL,也没用你说的问的。我的代码如下:void CDemoDlg::OnButton1(){ \/\/ TODO: Add your control notification handler code here CToolMainWindow* dlg = ...

MFC中,模态和非模态对话框的关闭问题
贴出窗口1中,窗口2的创建部分的代码。一般可能是窗口2创建的时候,没有明确父窗口关系或者错误的父窗口造成的,这里要将窗口1的句柄作为父窗口。另外,这个问题确实比较古怪,模态关系是很难破坏的,应该是哪个地方做了错误的逻辑处理或者窗口操作,这个不好说一定是哪里的问题。

mfc中button按钮打开新对话框,关闭原对话框,怎么办?
两种方法 1)起两个进程 2)用你的老方法 ,但是你在dlg->DestroyWindow()的时候只是将你的新对话框destroy了,并没有将旧对话框destroy掉,所以应该响应新对话框的WM_DESTROY同时应该向旧对话框也要发送WM_DESTROY消息 这样进程就退出了.

相似回答