有一个背景窗口,我想把背景窗口的一部分特定区域裁剪掉,不让它重绘,有什么方法?谢谢大家
RT

解决方案 »

  1.   

    得到这个区域,CRgn rgn可以使用如下,来不绘制此区域pDC->SelectClipRgn(&rgn, RGN_DIFF);
      

  2.   

    这段代码对你应该有用!void CTestDlg::OnButton1() 
    {
    // TODO: Add your control notification handler code here
    CString str;
    if(GetDlgItemText(IDC_BUTTON1, str), str == "收缩<<")
    {
    SetDlgItemText(IDC_BUTTON1,"扩展>>");
    }
    else
    {
    SetDlgItemText(IDC_BUTTON1,"收缩<<");
    } static CRect rectLarge;
    static CRect rectSmall;

    if(rectLarge.IsRectNull())
    {
    CRect rectSeparator;
    GetWindowRect(&rectLarge);
    GetDlgItem(IDC_SEPARATOR)->GetWindowRect(&rectSeparator); rectSmall.left=rectLarge.left;
    rectSmall.top=rectLarge.top;
    rectSmall.right=rectLarge.right;
    rectSmall.bottom=rectSeparator.bottom;
    }
    if(str=="收缩<<")
    {
    SetWindowPos(NULL,0,0,rectSmall.Width(),rectSmall.Height(),
    SWP_NOMOVE | SWP_NOZORDER);
    }
    else
    {
    SetWindowPos(NULL,0,0,rectLarge.Width(),rectLarge.Height(),
    SWP_NOMOVE | SWP_NOZORDER);
    }
    }