系统运维
说明
drawtext的缺点:字体的大小以及字体摆放位置需要手动计算,并且字体的宽和高实际上是不能随意的设置的,在可伸缩的情况下,效果差基于以上的缺点,引入drawlabel函数
应用
void drawlabel(const wxstring& text, const wxrect& rect,
int alignment = wxalign_left | wxalign_top,
int indexaccel = -1)
第一个参数是标签的文本内容
第二个参数是标签所在的矩形区域
第三个参数是文本的对齐方式,其中包含居中对齐,左对齐等等,详细见
wxalignment
wxalign_center_horizontal = 0x0100,
wxalign_centre_horizontal = wxalign_center_horizontal,
wxalign_left = wxalign_not,
wxalign_top = wxalign_not,
wxalign_right = 0x0200,
wxalign_bottom = 0x0400,
wxalign_center_vertical = 0x0800,
wxalign_centre_vertical = wxalign_center_vertical,
该函数在自定义控件中,渲染控件的标题非常有用
例子:控件的标题占整个控件的百分之30的高度,居中对齐
wxbufferedpaintdc dc(this);
int titleheight = m_size.getheight()*0.3;
wxrect rect(0, 0, m_size.getwidth(), titleheight);
dc.drawlabel(m_sztitle, rect, wxalign_center_horizontal | wxalign_top);
说明 0,0表示从控件的左上角开始,取控件的宽度为标签的矩形宽度,百分之三十的高位矩形的高度
采用drawtext的例子
wxfont titlefont(wxsize(0, titleheight), wxfontfamily_script , wxnormal, wxfontweight_light);
dc.setfont(titlefont);
dc.drawtext(m_sztitle, 4, 0);
注意wxsize主要是用来设置字体的宽和高,实际上,可以只设置字体的高,来自动确认字体的宽,但是往往效果差,下面提供了一个设置字体大小的方法,同样的效果差
wxclientdc dc(this);
//定义一个wxfont类的对象font
//构造函数wxfont::wxfont(字体大小、字体类型(书法、艺术)、斜体、)
wxfont font(30,wxfontfamily_roman ,wxnormal,wxbold);
//利用dc类的成员函数setfont设置字体
dc.setfont(font);
//设置背景透或者不透
dc.setbackgroundmode(wxsolid);
//设置前景颜色
dc.settextforeground(wxcolor(0, 255, 127));
//设置背景颜色
dc.settextbackground(wxcolor(0, 36, 17));
//写字,文本wxstring,位置wxpoint
dc.drawtext(9, 100, 100);
阿里云服务器有多少个硬盘组成的阿里云海外轻量服务器云服务器配置node培训开启 取消拦截-虚拟主机/数据库问题云便宜服务器word表格文字怎么上下居中上海云服务器怎么样互利共赢一个机柜是几U?能放几台服务器?