wxWidgets教程(4)- 绘图

wxDC

所有的绘图设备都继承自wxDC。

改变绘图设备的坐标系:SetDeviceOrigin(原点),SetAxisOrientation(方向)

GetSize获取绘图设备的像素大小,GetSizeMM获取设备的毫米大小

SetUserScale:可以制定一个缩放比例(wxMM_TWIPS)

SetClippingRegion:指定一个区域进行绘图

DestroyClippingRegion:删除指定的区域

常用的绘图设备

  • wxClientDC.客户区
  • wxBufferedDC.双缓冲绘图设备
  • wxWindowDC.整个窗口区域
  • wxPaintDC.重绘客户区的时候用到,仅用于重绘事件
  • wxBufferedPaintDC.仅用于重绘事件
  • wxScreenDC.屏幕设备
  • wxMemoryDC.图片设备
  • wxMetafileDC.图元文件设备
  • wxPrinterDC.打印机设备
  • wxPostScriptDC.支持PostScript的设备

wxClientDC介绍

首先看一个例子

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:设置缩放指











你可能感兴趣的:(wxWidgets教程(4)- 绘图)