我用一个TAB来控制一个静态文本的显示和隐藏,在OnPaint()里面绘制图形如下:
 void CFormView::OnPaint() 
 {
    CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
    CWnd* pWnd=GetDlgItem(IDC_CHART);
    CDC* pDC=pWnd->GetDC();
    pDC->。。//在IDC_CHART控件上绘图部分
 }
而在TAB的选择中则是
 void CFormView::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) 
{
// TODO: Add your control notification handler code here
    int iPage=m_tabCtrl.GetCurSel();//所选标签号
    switch(iPage)
{
        case 0:
            GetDlgItem(IDC_CHART)->ShowWindow(SW_SHOW); 
            break;
        case 1:
            GetDlgItem(IDC_CHART)->ShowWindow(SW_HIDE);
            break;
}
*pResult = 0;
}来控制IDC_CHART的显示和隐藏。我需要外面的数据来实时的绘制图形,哪怕是控件隐藏掉的时候,请问怎么解决,麻烦各位 谢谢大家

解决方案 »

  1.   

    从CStatic派生一个类,然后重载WM_PAINT消息,在里面进行绘制。
      

  2.   

    从CStatic派生一个类,然后重载WM_PAINT消息,在里面进行绘制。
    这个不错
    -----------------------------------------------------
    还有就是
    case 0:
        GetDlgItem(IDC_CHART)->ShowWindow(SW_SHOW); 
        Invalidate();
        break;
    试试看
      

  3.   

    showwindow完了以后需要刷新一下,试试楼上的方法,updatewidow应该也可以
      

  4.   

    还有就是派生出来的STATIC的背景颜色是在哪里改的,是在自己的类里面还是他所在的FORMview里面的OnCtlColor
      

  5.   

    在自己派生出来的类里面改了,响应OnCtlColor函数就行了吧