子对话框的重回问题
时间:2011-12-11
来源:互联网
我在我的主对话框中嵌套了一个中一个从数据库中读取的图片子对话框。
当主对话框最小化后再还原时,子对话框的图片就不见了。
或者子对话框之间切换时图片也不见了!
个人觉的是不是从模板资源建立的子对话框没有OnPaint()函数问题啊!
部分代码:
在主对话框的OnInitDialog()完成:
//以下代码都是子对话框的创建过程:
m_PersonDlg.Create(IDD_PERSON,this);
//m_PersonDlg.ShowPersonInfo();
m_QingJiaDlg.Create(IDD_QINGJIA,this);
m_JiaBanDlg.Create(IDD_JIABAN,this);
m_VisitDlg.Create(IDD_VISIT,this);
m_KaoQingDlg.Create(IDD_KAOQING,this);
//主对话框上图片控件的尺寸,然后在逐个将子对话框嵌入到主对话框中:
CRect rcDlgs;
GetDlgItem(IDC_SONDLG)->GetWindowRect(&rcDlgs);
//m_sonDlg.GetClientRect(&rcDlgs);
ScreenToClient(&rcDlgs);
m_PersonDlg.MoveWindow(rcDlgs);
m_QingJiaDlg.MoveWindow(rcDlgs);
m_JiaBanDlg.MoveWindow(rcDlgs);
m_VisitDlg.MoveWindow(rcDlgs);
m_KaoQingDlg.MoveWindow(rcDlgs);
以下是选择哪个节点就在主对话框中显示哪个窗口:
void CEmployeeDlg::OnSelchangedMytree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
if(this->m_employeeTree.GetItemText(this->m_employeeTree.GetSelectedItem())=="请假情况")
{
m_QingJiaDlg.ShowWindow(SW_SHOW);
m_PersonDlg.ShowWindow(SW_HIDE/*SW_SHOW*/);
//m_QingJiaDlg.ShowWindow(SW_HIDE);
m_JiaBanDlg.ShowWindow(SW_HIDE);
m_VisitDlg.ShowWindow(SW_HIDE);
m_KaoQingDlg.ShowWindow(SW_HIDE);
}
if(this->m_employeeTree.GetItemText(this->m_employeeTree.GetSelectedItem())=="个人信息")
{
m_PersonDlg.ShowWindow(SW_SHOW/*SW_SHOW*/);
//m_PersonDlg.ShowWindow(SW_HIDE/*SW_SHOW*/);
m_QingJiaDlg.ShowWindow(SW_HIDE);
m_JiaBanDlg.ShowWindow(SW_HIDE);
m_VisitDlg.ShowWindow(SW_HIDE);
m_KaoQingDlg.ShowWindow(SW_HIDE);
m_PersonDlg.Invalidate(TRUE);
}
if(this->m_employeeTree.GetItemText(this->m_employeeTree.GetSelectedItem())=="加班情况")
{
m_JiaBanDlg.ShowWindow(SW_SHOW);
m_PersonDlg.ShowWindow(SW_HIDE/*SW_SHOW*/);
m_QingJiaDlg.ShowWindow(SW_HIDE);
//m_JiaBanDlg.ShowWindow(SW_HIDE);
m_VisitDlg.ShowWindow(SW_HIDE);
m_KaoQingDlg.ShowWindow(SW_HIDE);
}
if(this->m_employeeTree.GetItemText(this->m_employeeTree.GetSelectedItem())=="出差情况")
{
m_VisitDlg.ShowWindow(SW_SHOW);
m_PersonDlg.ShowWindow(SW_HIDE/*SW_SHOW*/);
m_QingJiaDlg.ShowWindow(SW_HIDE);
m_JiaBanDlg.ShowWindow(SW_HIDE);
m_KaoQingDlg.ShowWindow(SW_HIDE);
}
本人积分不多!希望大家帮忙!感激不尽
当主对话框最小化后再还原时,子对话框的图片就不见了。
或者子对话框之间切换时图片也不见了!
个人觉的是不是从模板资源建立的子对话框没有OnPaint()函数问题啊!
部分代码:
在主对话框的OnInitDialog()完成:
//以下代码都是子对话框的创建过程:
m_PersonDlg.Create(IDD_PERSON,this);
//m_PersonDlg.ShowPersonInfo();
m_QingJiaDlg.Create(IDD_QINGJIA,this);
m_JiaBanDlg.Create(IDD_JIABAN,this);
m_VisitDlg.Create(IDD_VISIT,this);
m_KaoQingDlg.Create(IDD_KAOQING,this);
//主对话框上图片控件的尺寸,然后在逐个将子对话框嵌入到主对话框中:
CRect rcDlgs;
GetDlgItem(IDC_SONDLG)->GetWindowRect(&rcDlgs);
//m_sonDlg.GetClientRect(&rcDlgs);
ScreenToClient(&rcDlgs);
m_PersonDlg.MoveWindow(rcDlgs);
m_QingJiaDlg.MoveWindow(rcDlgs);
m_JiaBanDlg.MoveWindow(rcDlgs);
m_VisitDlg.MoveWindow(rcDlgs);
m_KaoQingDlg.MoveWindow(rcDlgs);
以下是选择哪个节点就在主对话框中显示哪个窗口:
void CEmployeeDlg::OnSelchangedMytree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
if(this->m_employeeTree.GetItemText(this->m_employeeTree.GetSelectedItem())=="请假情况")
{
m_QingJiaDlg.ShowWindow(SW_SHOW);
m_PersonDlg.ShowWindow(SW_HIDE/*SW_SHOW*/);
//m_QingJiaDlg.ShowWindow(SW_HIDE);
m_JiaBanDlg.ShowWindow(SW_HIDE);
m_VisitDlg.ShowWindow(SW_HIDE);
m_KaoQingDlg.ShowWindow(SW_HIDE);
}
if(this->m_employeeTree.GetItemText(this->m_employeeTree.GetSelectedItem())=="个人信息")
{
m_PersonDlg.ShowWindow(SW_SHOW/*SW_SHOW*/);
//m_PersonDlg.ShowWindow(SW_HIDE/*SW_SHOW*/);
m_QingJiaDlg.ShowWindow(SW_HIDE);
m_JiaBanDlg.ShowWindow(SW_HIDE);
m_VisitDlg.ShowWindow(SW_HIDE);
m_KaoQingDlg.ShowWindow(SW_HIDE);
m_PersonDlg.Invalidate(TRUE);
}
if(this->m_employeeTree.GetItemText(this->m_employeeTree.GetSelectedItem())=="加班情况")
{
m_JiaBanDlg.ShowWindow(SW_SHOW);
m_PersonDlg.ShowWindow(SW_HIDE/*SW_SHOW*/);
m_QingJiaDlg.ShowWindow(SW_HIDE);
//m_JiaBanDlg.ShowWindow(SW_HIDE);
m_VisitDlg.ShowWindow(SW_HIDE);
m_KaoQingDlg.ShowWindow(SW_HIDE);
}
if(this->m_employeeTree.GetItemText(this->m_employeeTree.GetSelectedItem())=="出差情况")
{
m_VisitDlg.ShowWindow(SW_SHOW);
m_PersonDlg.ShowWindow(SW_HIDE/*SW_SHOW*/);
m_QingJiaDlg.ShowWindow(SW_HIDE);
m_JiaBanDlg.ShowWindow(SW_HIDE);
m_KaoQingDlg.ShowWindow(SW_HIDE);
}
本人积分不多!希望大家帮忙!感激不尽
作者: spirate5 发布时间: 2011-12-11
重载子对话框的OnPaint,添加图片的代码
作者: oyljerry 发布时间: 2011-12-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28