我在我的主对话框中嵌套了一个中一个从数据库中读取的图片子对话框。
当主对话框最小化后再还原时,子对话框的图片就不见了。
或者子对话框之间切换时图片也不见了!个人觉的是不是从模板资源建立的子对话框没有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);
}
本人积分不多!希望大家帮忙!感激不尽
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货