C 視窗矩形區域著色

2022-01-23 14:29:51 字數 967 閱讀 8240

c#寫的乙個gui視窗,有幾百個矩形區域。每個矩形區域的顏色隨時都可能改變,並且多次改變。

我放棄使用label繪製矩形,因為效果不好。拖控制項的介面使用power packs中的rectangleshape繪製。而顏色的修改在c#**中進行設定。

通過計算座標,c#中的**能和介面上繪製的矩形框對應。

顏色繪製使用gdi的函式,例如

graphics g = e.graphics;

g.fillrectangle(brush, rect);

通過封裝,可以編寫出乙個函式,指定矩形框的座標和顏色,就能著色。

首先建構函式中新增

this.paint += new painteventhandler(form1_paint);
然後編寫自定義函式form1_paint

private void form1_paint(object sender, system.windows.forms.painteventargs e)}}

}

其中brush是資料成員:

private solidbrush brush = new solidbrush(color.white);
rect[i,j,k]是c#**中定義的矩形區域,也是資料成員,比如:

private rectangle[,,] rect = new rectangle[4,5,25];
並記得編寫相應的初始化函式,初始化每個rectangle(比如放在建構函式中最前面)

然後是最後繪製呼叫函式,每次指定顏色時,更新成員變數brush的color欄位,然後呼叫invalidate(rect[i,j,k]):

private void drawblock(int i, int j, int k, color color)

CSU1007 矩形著色

danni想為螢幕上的乙個矩形著色,但是她想到了乙個問題。當點選滑鼠以後電腦是如何判斷填充的區域呢?現在給你乙個平面直角座標系,其中有乙個矩形和乙個點,矩形的四條邊均是平行於x軸或y軸的。請你判斷這個點相對於矩形的位置,即在矩形內,在矩形上,還是在矩形外?第一行只有乙個整數t,t 150 代表共有t...

視窗區域和客戶區域

getclientrect 此函式用於取得視窗的客戶區座標。客戶區即視窗客戶區的左上角和右下角之間 的區域。客戶區座標的原點位於視窗客戶區的左上角,即用此函式得到的座標的 原點是視窗客戶區的左上角,左上角的的座標值為 0,0 返回值 成功時返回非0,失敗時返回0 注意 在與結構rect之間的轉換中為...

windows程式設計(10) 矩形與區域

windows中,矩形結構rect通過左上角和右下角兩個點控制。rect rect rect.left xleft rect.top xtop rect.right xright rect.bottom xbottom 矩形支援操作很多,比如offsetrect rect,x,y 將矩形移動 int...