wxWidgets第十课渲染字体-创新互联
说明
站在用户的角度思考问题,与客户深入沟通,找到饶河网站设计与饶河网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名与空间、网页空间、企业邮箱。业务覆盖饶河地区。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);
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前标题:wxWidgets第十课渲染字体-创新互联
文章转载:http://myzitong.com/article/dppgei.html