我的程序现在是在对话框A中用了tab控件   然后用tab控件来控制对两个对话框B的显示对话框A在tab控件的切换响应函数的代码如下 
CRect r;
dlgSysStatus1->GetWindowRect(r);
switch(m_tabShow.GetCurSel())
{
case 0:
dlgSysStatus1->SetWindowPos (NULL,630,580,r.right-r.left,r.bottom-r.top,SWP_SHOWWINDOW);
dlgSysStatus2->SetWindowPos (NULL,630,580,r.right-r.left,r.bottom-r.top,SWP_HIDEWINDOW);
dlgSysStatus1->Show();
break;
case 1:
dlgSysStatus1->SetWindowPos (NULL,630,580,r.right-r.left,r.bottom-r.top,SWP_HIDEWINDOW);
dlgSysStatus2->SetWindowPos (NULL,630,580,r.right-r.left,r.bottom-r.top,SWP_SHOWWINDOW);
dlgSysStatus2->Show2();
break;
}Show是自己写的对话框B的绘图函数,代码如下:
CPaintDC dc(this);
DrawStatus(&dc,CCS_RATP_X,CCS_RATP_Y,clrCCSRATP,GRAY,"正常");
DrawStatus就是一个简单的画图函数。现在的问题是   如果切换界面的话  (就是alt+tab键在几个程序间切换)回到本程序的时候 对话框上的图形就没有了  只有点击了tab控件   图形就又出现了   试过了在两个对话框加入paint消息 但是都不行   有没有什么其他的办法?

解决方案 »

  1.   

    在OnPaint()中绘图,也就是说把你绘图的那部分代码移到OnPaint中去.
      

  2.   

    把你绘图的代码放到OnPaint中调用
      

  3.   

    // 把你绘图的代码放到OnPaint中调用
    // 你现在的代码,在最小化再恢复的过程中,窗口重绘了,你这段代码没有再次执行,所以没了。
      

  4.   

    我放到onpaint里面了 但是没用  我怀疑是不是和对话框套对话框有关系呢
      

  5.   

    或者ON SIZE 去試一下 
      

  6.   

    OnPaint就是做这个的,保管你的图形不丢失。