您好,登錄后才能下訂單哦!
說明
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);
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。