所有的绘图设备都继承自wxDC。
改变绘图设备的坐标系:SetDeviceOrigin(原点),SetAxisOrientation(方向)
GetSize获取绘图设备的像素大小,GetSizeMM获取设备的毫米大小
SetUserScale:可以制定一个缩放比例(wxMM_TWIPS)
SetClippingRegion:指定一个区域进行绘图
DestroyClippingRegion:删除指定的区域
首先看一个例子
EVT_MOTION(MyWxFrame::OnMotion) void MyWxFrame::OnMotion(wxMouseEvent& event) { if (event.Dragging()) { wxClientDC dc(this); wxPen pen(*wxRED,1); dc.SetPen(pen); dc.DrawPoint(event.GetPosition()); dc.SetPen(wxNullPen); } }用来在客户使用一个画笔进行绘图
1、wxColour(wxColour wc(255,0,0)红色),还有第4个参数,是apha通道
系统自带的颜色有:wxBLACK,wxWHITE, wxRED, wxBLUE, wxGREEN, wxCYAN,wxLIGHT_GREY,wxNullColour
wxSystemSettings::GetColour获取系统颜色(wxSYS COLOUR 3DFACE)
2、wxPen(wxPen wp(颜色,宽度,线型))
系统的线型有:wxSOLID,wxTRANSPARENT,wxDOT,wxLONG_DASH,wxSHORT_DASH,wxDOT_DASH
3、wxBrush(wxBrush wb(颜色,画刷类型))
画刷类型:wxSOLID,wxTRANSPARENT,wxBDIAGONAL_HATCH,wxCROSSDIAG_HATCH,wxSTIPPLE
系统画刷:wxGREEN BRUSH, wxWHITE BRUSH, wxBLACK BRUSH, wxGREY BRUSH,wxMEDIUM GREY BRUSH, wxLIGHT GREY BRUSH,wxtrANSPARENT BRUSH,wxNullBrush
4、wxFont(wxFont font(16, wxFONTFAMILY_SWISS, wxNORMAL, wxBOLD, true,wxT("Consolas"), wxFONTENCODING_ISO8859_1);)
也可以获取字体:wxFont* font = wxTheFontList->FindOrCreateFont(12, wxSWISS,wxNORMAL, wxNORMAL);
5、wxPalette(调色板,估计用的很少)
1、常用的函数有:
- Blit,拷贝此设备一部分到另一个设备
- Clear,刷新背景
- SetClippingRegion和DestroyClippingRegion:设置和释放区域
- DrawBitmap和DrawIcon:在某个位置画一个位图或者图标
- DrawCircle和DrawEllipse:画一个园和椭圆
- DrawLine和DrawLines:画线
- DrawPoint:画一个点像素
- DrawPolygon和DrawPolyPolygon:画多边形
- DrawRectangle和DrawRoundedRectangle:画矩形,或圆角矩形
- DrawText和DrawRotatedText:绘制文本,旋转文本
- DrawSpline:画一条平滑的曲线
- FloodFill:使用画刷填充
- SetBackground:设备背景画刷
- SetBackgroundMode:设置背景是实体还是透明wxTRANSPARENT和wxSOLID
- SetBrush:设置画刷
- SetPen:设置画笔
- SetFont:设置字体
- SetPalette:设置调色板
- SetTextForeground和SetTextBackground:设置字体前景色和后景色
- GetPixel:获取像素
- GetTextExtent和GetPartialTextExtents:获取文本的大小
- GetSize和GetSizeMM:获取设备的尺寸
- DeviceToLogicalX:设备坐标转化到逻辑坐标
- LogicalToDeviceX:逻辑坐标转化到设备坐标
- SetMapMode:逻辑坐标到设备坐标的映射模式
- SetAxisOrientation:设备x,y方向
- SetDeviceOrigin:设置坐标原点
- SetUserScale:设置缩放指