笨嘴拙舌WINDOWS GDI繪製區域

2022-04-03 02:42:45 字數 1515 閱讀 5173

在預設情況下,gdi繪畫操作的使用白紙(視窗的客戶區)黑字(pen的顏色)!前面我們已經講過如何改筆,現在來學習改變白紙(gdi的繪製區域)

正常的紙為乙個矩形形狀!有時候小孩不小心撕掉紙的一角,不小心被紙中間掏空了,又或者紙被剪成了藝術品,比如:

如果在這樣的上垂直方向的**劃一根4個畫素的黑色的線條講呈現出下面的效果

黑色的線條被紙分層了若干段,因為白色的部分不是紙!

winodws提供的繪製區域也就是相當於上面提到的紙!其中可用函式的的有

hrgn = createrectrgn(xleft,ytop.xright,ybottom)       矩形區域

hrgn = createrectrgnindirect(&rect)                            同上

hrgn = createellipticrgn(xleft,ytop.xright,ybottom)    橢圓區域     

hrgn = createellipticrgnindirect(&rect)                         同上

hrgn = createpolygonrgn(&point,icount,ipolyfillmode)多邊形區域

如果有多個區域,可以使用乙個函式來合併

combinrgn(hdestrgn,hsrcrgn1,hsrcrgn2,icombine)

「將hsrcrgn1和hsrcrgn2使用icombine方式合併為結果hdestrgn,icombine可取值有:

icombine值

hdestrgn

rgn_and

兩個區域的公共部分

rgn_or

兩個區域的全部

rgn_xor

兩個區域的全部除去公共部分

rgn_diff

hsrcrgn1不在黑hsrcrgn2中的部分

rgn_copy

hsrcrgn1的全部(忽略hsrcrgn2)

區域的控制代碼可用於4個繪圖函式

fillrgn(hdc,hrgn,hbrush)                                   用指定畫刷填充

framergn(hdc,hrgn,hbrush,xframe,yframe)    用畫刷填充邊框

(邊框寬高由xframe,yframe)

invertrgn(hdc,hrgn)                                     將區域中的顏色畫素反轉

paintrgn(hdc,hrgn)                                           用當前畫刷填充

笨嘴拙舌WINDOWS GDI 2

古時候,大師舞文之時需要筆墨紙伺候,不同筆,不同墨,作品風格迥異!以下是windows提供的筆 帶有墨 createpen ps solid,0,clred 直線 createpen ps dash,0,clred createpen ps dash,4,clred createpen ps dot...

笨嘴拙舌WINDOWS 編碼歷史

在介紹歷史之前,有必要將乙個經常使用的詞語 標準 解釋一下 標準是 為了在一定的範圍內獲得最佳秩序,經協商一致制定並由公認機構批准,共同使用的和重複使用的一種規範性檔案。標準原意為目的,也就是標靶。其後由於標靶本身的特性,衍生出乙個 如何與其他事物區別的規則 的意思。會衍生出這個意思也不難理解。標靶...

笨嘴拙舌WINDOWS 計時器精度

windows的大多數系統並非實時作業系統,所以不能規定計算機在某個精確到納秒的時間讓計算機做某項任務,如果規定了時間windows也將需要在完成了執行緒排程後,經行任務執行!也就是說,如果你的應用程式指定計算機在 8 30 29.365秒執行a程式,那麼程式真正執行的時間可能是 8 30 29.3...