有对话框A和对话框B, A嵌套到B中. B中右上角有三个按钮, n1, n2, n3. 其中,n2为放大按钮.对话框B是黑色背景的,对话框A显示一幅图片. 当点击放大按钮n2时,由于窗口重绘, 对话框B的黑色背景覆盖了对话框A的画面. 请问各位网友, 如何解决背景色覆盖问题?
不知道你这个问题是否已经解决, 如果还没有解决的话:在父对话框中创建并显示子对话框,同时隐藏父对话框:
void Student_Login::OnBnClickedButtonCc()
{
// TODO: 在此添加控件通知处理程序代码
ChooseCourse *m_dlg = new ChooseCourse(this);
m_dlg->Create(IDD_DIALOG_COURSE, this);
//隐藏本对话框
this->ShowWindow(SW_HIDE);
//显示子对话框
m_dlg->ShowWindow(SW_SHOW);
}
在子对话框中关闭子对话框同时显示出父对话框:
1、首先定义一个全局变量CWnd *m_pParent来保存从父对话框传过来的父对话框窗口句柄。
private:
CWnd *m_pParent;
2、在子对话框类的构造函数中将父对话框传过来的父对话框窗口句柄保存到m_pParent中。
ChooseCourse::ChooseCourse(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_DIALOG_COURSE, pParent)
{
m_pParent = pParent;
}
3、在子对话框函数中显示父对话框,同时关闭子对话框:
void ChooseCourse::OnBnClickedButtonBack1()
{
// TODO: 在此添加控件通知处理程序代码
m_pParent->ShowWindow(SW_SHOW);
DestroyWindow();
delete this;
}
大功告成!!!