用 RoundRect 畫出 FLATSLUR 平頂弧線FLATSLUR 平頂弧線,如圖示,一般是由左邊的弧型,中間平直線,右邊弧型組合而成。
一般可能是分別繪制後用 PATH 組合,或直接 PolyBezier 繪制。但學習中發現
VC++6 MFC 中,RoundRect 代碼void CDRAW20130724AView::OnDraw(CDC* pDC)
{
CDRAW20130724ADoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
pDC->RoundRect(50,50,400,400,100,70);
  
}可以畫出圓角矩型,如下
它的上面部份,正符合需求只是要如何直接套用 RoundRect 畫出需要的FLATSLUR 平頂弧線呢?請各位先進不吝指教,謝謝。江振興  台灣  20130724  12:00

解决方案 »

  1.   

    设置一个 cliprgn
    >>
    謝謝,我是老人,初學,有太多不懂,能幫忙寫個代碼嗎?江振興 台灣 20130724  12:35
      

  2.   

    查了一下 ClipRgn ,是作剪裁區域。有沒有一種類似 RoundRect 的,畫出來就是平頂弧線,改變 x 或 y ,就能方便的調整左右兩邊的弧型?謝謝江振興 台灣 20130724  12:50
      

  3.   

    大概:
    CRect clipRc;
    clipRc.SetRect(50,50,450,100);// l t r b
    CRgn rgn;
    rgn.CreateRectgnIndirect(&clipRc);
    pDC->SelectClipRgn(rgn);
    pDC->RoundRect(50,50,400,400,100,70);
      

  4.   

    大概:
    CRect clipRc;
    clipRc.SetRect(50,50,450,100);// l t r b
    CRgn rgn;
    rgn.CreateRectgnIndirect(&clipRc);
    pDC->SelectClipRgn(rgn);
    pDC->RoundRect(50,50,400,400,100,70); 
    >>
    謝謝指導江振興  台灣 20130724  14:03