MFC 畫字體DrawText()或TextOut(),CFont字體樣式類


新建單個文檔的MFC應用程序,類視圖——View項的屬性——消息,WM_PAINT,創建OnPaint()函數

void CMFCApplication27View::OnPaint()
{
    CPaintDC dc(this); // device context for painting
    // TODO:  在此處添加消息處理程序代碼    
    CRect rect;
    this->GetClientRect(&rect);//獲取客戶區大小
 CFont font;//用來設置大小、樣式,顏色用dc.SetTextColor設置
    font.CreatePointFont(200, TEXT("Arial"));//20號字
    dc.SelectObject(&font); 
    //-------------------- 矩形框偏移,陰影效果 -------------------------------------//
    dc.SetBkMode(TRANSPARENT);//透明,否則新的遮住舊的
    rect.OffsetRect(20, 20);//右、下偏移20
    dc.SetTextColor(RGB(192, 192, 192));//灰色
    dc.DrawText(TEXT("DrawText畫文本"), &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);//方式一,客戶區、單行、上下左右居中
    rect.OffsetRect(-20, -20);//左、上偏移20
    dc.SetTextColor(RGB(0, 0, 0));//黑色
    dc.DrawText(TEXT("DrawText畫文本"), &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
    //---------------------------------------------------------------------//
    dc.TextOut(10, 10, TEXT("TextOut畫文本"));//方式二,起始點(10,10)
    //-------------------- 畫字方式三 -------------------------------------//
    LOGFONT lf; //邏輯字
    ::ZeroMemory(&lf, sizeof(lf));//清內存,::可以調用API函數
    lf.lfHeight = 120;//12號字
    lf.lfWeight = FW_BOLD;//加粗
    lf.lfItalic = TRUE;//斜體
    ::lstrcpy(lf.lfFaceName, TEXT("Times New Roman"));

    CFont font2;
    font2.CreatePointFontIndirect(&lf);
    dc.SelectObject(&font2);
    dc.TextOut(10, 50, TEXT("邏輯字"));
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM