真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

wxWidgets第九課wx繪圖工具

畫筆畫刷說明

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,豐潤企業(yè)網(wǎng)站建設,豐潤品牌網(wǎng)站建設,網(wǎng)站定制,豐潤網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,豐潤網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

        wxPen作為畫筆渲染輪廓線,wxBrush作為畫刷渲染圖形的填充顏色。當畫筆和畫刷同時使用的情況下,可以渲染輪廓顏色和填充顏色不一樣的圖形。wxPen構(gòu)造函數(shù)的第一個參數(shù)是顏色,第二個參數(shù)是畫筆的厚度。wx針對畫筆和畫刷提供了許多常見的顏色宏定義,避免了需要手動設置RGB分量的情況,大大減輕開發(fā)者的負擔。例如畫筆顏色wxBLACK_PEN wxGREEN_PEN wxWHITE_PEN wxBLUE_PEN等,畫刷顏色wxBLACK_BRUSH wxGREEN_BRUSH wxWHITE_BRUSH wxBLUE_BRUSH等

已有例子

wxBufferedPaintDC dc(this);

dc.SetBrush(wxBrush(wxColour(255, 255, 255)));

現(xiàn)有例子

wxBufferedPaintDC dc(this);

dc.SetBrush(*wxWHITE_BRUSH);


注意

dc.SetBrush(wxNullBrush);

dc.SetPen(wxNullPen);

上述兩行代碼能夠清除當前設置的畫筆和畫刷的顏色,避免影響到后續(xù)的渲染


代碼

#include "wx/wx.h"


空心矩形wxPen

void CFlightInstrumentPanel::OnPaint( wxPaintEvent& event )

{

wxClientDC dc(this);

wxPen pen(*wxRED,1);

dc.SetPen(pen);

dc.DrawRectangle(0, 0, 200, 300);

dc.SetPen(wxNullPen);

}


實心矩形wxBrush

void CFlightInstrumentPanel::OnPaint( wxPaintEvent& event )

{

wxClientDC dc(this);

wxColor strokeColor(0, 255, 255, 255);

wxColor fillColor(0, 0, 255, 255);

wxBrush brush(fillColor);

wxPen pen(strokeColor);

dc.SetPen(pen);

dc.SetBrush(brush);

dc.DrawRectangle(0, 0, 200, 300);

dc.SetBrush(wxNullBrush);

dc.SetPen(wxNullPen);

}


可以設置dc.SetBrush(*wxTRANSPARENT_BRUSH);透明畫刷來實現(xiàn),渲染空心輪廓線


DrawEllipse 渲染橢圓說明

#include "wx/dcclient.h"


wxPaintDC dc(this);

wxColor color(15, 57, 121);

wxBrush brush(color);

dc.SetBrush(brush);

dc.DrawEllipse(0, 0, width, height);

dc.SetBrush(wxNullBrush);


DrawEllipse渲染橢圓,該橢圓內(nèi)切于矩形,當width等于height的時候,渲染圓形,

第一和第二參數(shù)是矩形的左上角的X軸和Y軸坐標,第三和第四參數(shù)是矩形

的長和寬



DrawPoint 渲染點說明

渲染點使用畫筆wxPen,因此認為渲染點的尺寸大小能夠通過修改畫筆的寬度來修改,實際上渲染點的尺寸大小始終是1個像素點,所以會造


成以下的現(xiàn)象:僅僅渲染一個點,在屏幕上是無法通過肉眼看到的

實例代碼:關聯(lián)渲染事件OnPaint,在屏幕上(100,100)位置渲染點

void CFlightInstrumentPanel::OnPaint( wxPaintEvent& event )

{

wxClientDC dc(this);

wxPen pen(*wxBLACK, 5); 

dc.SetPen(pen);

dc.DrawPoint(100, 100);

dc.SetPen(wxNullPen);

}


實例代碼:驗證說明確實已經(jīng)進行了渲染并且肉眼可以看見,可以連續(xù)渲染多個相鄰的點,形成直線。關聯(lián)鼠標拖動事件OnMotion

void CFlightInstrumentPanel::OnMotion( wxMouseEvent& event )

{

if ( event.Dragging())

{

wxClientDC dc(this);

wxPen pen(*wxBLACK, 5); 

dc.SetPen(pen);

int x = event.GetPosition().x;

int y = event.GetPosition().y;

dc.DrawPoint(x, y);

dc.SetPen(wxNullPen);

}

}


結(jié)論:

為了能夠渲染一個足夠大的點,可以使用渲染圓形的方式


分享名稱:wxWidgets第九課wx繪圖工具
當前路徑:http://weahome.cn/article/jsgods.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部