解决方案 »

  1.   


    是的,圆角矩形的四条边放在四周的四个dialog中,中间的dialog是程序的操作区。
      

  2.   

    程序窗口就是这样? 用:
    SetWindowRgn(wndRgn,TRUE);
    不行吗 ?
      

  3.   

    圆按钮 就是 用 的:
    SetWindowRgn(wndRgn,TRUE);
      

  4.   

    到不是需要圆形按钮。只是怎么把这个图形绘制到mfc dialog上。而且保证里面其他图形界面和他等比例缩放。
      

  5.   

    对话框OnPaint:#define R 50
    #define W 300
    #define H 200
    #define O_X 30
    #define O_Y 20
    CPaintDC dc(this);
    //
    CDC memDC;
    memDC.CreateCompatibleDC(&dc);
    //
    CBitmap bmp;
    bmp.CreateCompatibleBitmap(&dc,W,H);
    memDC.SelectObject(bmp);
    CBrush brush;
    brush.CreateSolidBrush(RGB(196,196,255));
    memDC.SelectObject(brush);
    // 蓝底
    CRgn rgn;
    rgn.CreateRoundRectRgn(0,0,W,H,R,R);
    memDC.FillRgn(&rgn,&brush);

    // 红边
    CBrush brush1;
    brush1.CreateSolidBrush(RGB(255,0,0));
    memDC.SelectObject(brush1);
    memDC.FrameRgn(&rgn,&brush1,1,1);
    // 去4个角
    CRgn rgn1;
    rgn1.CreateRoundRectRgn(O_X,O_Y,W+O_X,H+O_Y,R,R);
    dc.SelectClipRgn(&rgn1);
    dc.BitBlt(O_X,O_Y,W+O_X,H+O_Y,&memDC,0,0,SRCCOPY);
              
    //
    // CDialog::OnPaint();
    }
    }
      

  6.   


    非常感谢,已经实现。
    我也在window上面画了两个错开位置的圆角矩形。