GDI 中的圓角矩形

2021-04-12 14:21:30 字數 693 閱讀 6615

gdi+是對gdi的乙個令人興奮的擴充套件,但由於某些原因,它沒有提供繪製圓角矩形的函式,雖然我們可以在gdi+中使用gdi中的函式,但這樣一來我們沒辦法在圓角矩形中使用gdi+中的紋理和透明色等新特性。怎麼辦?gdi+中有乙個graphicspath 的類,我們可以用它構造各種形狀並且可用任何畫刷來填充這些形狀。本原始碼中提供了乙個可以加到任何工程中的函式,並用它來繪製了乙個圓角矩形,矩形的遠郊程度可以通過乙個滑動條來設定,函式如下:

graphicspath* makeroundrect(point topleft, point bottomright, int percentagerounded)

一點有趣的東西需要在這裡說明,我一開始是用new來建立gaphicspath物件的,但由於gdi+用了一些巧妙的方法阻止用new來建立gaphicspath物件(試一試),我建立了乙個區域性的gaphicspath變數,用它的clone方法來生成gaphicspath物件,我對此很困惑,為了和gdi+中的其他的類一致,你通過指標建立gdi+物件時最好用gdi+中的方法代替new,我猜這樣做是用因為其他的.net語言沒有指標的緣故。

這就是我要對這段**所要說的話,這段**有乙個設計缺限——在函式中建立了乙個物件,並由呼叫者來刪除,gdi+不允許我們返回乙個路徑物件,只能用指標,我猜這與gdi+的"返回每個類的引用有關",但這只是猜,為了好玩,你可以辦其他的東西加到這個路徑上——這會很有趣的。 

GDI 中的圓角矩形

翻譯 李昊 原文出處 http www.codeproject.com 源 gdiplusroundedrect gdi 是對gdi的乙個令人興奮的擴充套件,但由於某些原因,它沒有提供繪製圓角矩形的函式,雖然我們可以在gdi 中使用gdi中的函式,但這樣一來我們沒辦法在圓角矩形中使用gdi 中的紋理...

GDI 繪製圓角矩形

繪製圓角矩形 pen p new pen c,real nsize 畫矩形上面的邊 graphics.drawline p,rc.left width 2,rc.top,rc.right width 2,rc.top 畫矩形下面的邊 graphics.drawline p,rc.left width...

Photoshop中圓角矩形邊角翻轉

1 開啟photoshop 新建乙個新文件,大小自己給,只要適合你的就行。2 選擇圓角矩形工具,並設定半徑 40px 3 使用圓角矩形工具在工作區中畫乙個自己覺得合適的圓角矩形,並設定它的樣式 4 從這裡就開始要注意了,最關鍵的了,首先要選中圓角矩形圖層,選中直接選擇工具 5 使用直接選擇工具在矩形...