MFC字體(一)(控件文字字體)


1、建立基於對話框工程:My

2、添加控件:靜態文本控件:IDC_STATIC1

編輯框控件:建立一關聯變量CEdit  m_EditControl

3、在OnInitDialog中添加如下代碼:

CFont * m_pFont;

     m_pFont = new CFont;

     m_pFont->CreateFont(16,            // nHeight

     0,           // nWidth

     0,           // nEscapement

     0,           // nOrientation

     FW_BOLD,     // nWeight

     TRUE,        // bItalic

     FALSE,       // bUnderline

     0,           // cStrikeOut

     ANSI_CHARSET,              // nCharSet

     OUT_DEFAULT_PRECIS,        // nOutPrecision

     CLIP_DEFAULT_PRECIS,       // nClipPrecision

     DEFAULT_QUALITY,           // nQuality

     DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily

      _T("Arial"));              // lpszFac

     

     m_EditControl.SetFont(m_pFont,false);

     m_EditControl.SetWindowText("Hello!");

     GetDlgItem(IDC_STATIC1)->SetFont(m_pFont,false);

注:

1、

需要注意的是,這里我們使用的是CFont指針,而不是普通的CFont局部變量,如果把程序改成下面這樣:

CFont m_pFont;

運行后就得不到想要的效果了,因為OnInitDialog函數執行完畢,CFont m_pFont就會被清除。必須保證SetFont設置的字體對象在對話框關閉前一直有效。所以通常是使用指針或類成員的方式來保存所建立的字體對象。

2、

也可以定義CMyDlg類的成員變量:

CFont *m_pFont;

或CFont m_Font;

3、

若編輯框控件IDC_EDIT1未定義CEdit變量m_EditControl,可以如下調用:

CEdit* m_EditControl = (CEdit*)GetDlgItem(IDC_EIDT1);

m_EditControl->SetFont(m_pFont,false);

 

非MFC程序,首先用CreateFont來建立一個字體句柄,然后再用SendMessage發給控件WM_SETFONT消息,將建立的字體句柄賦值過去,就可以了。

 

 

CreateFont()函數的MSDN翻譯

函數功能:該函數創建一種有特殊性的邏輯字體,此邏輯字體可以在后面被任何設備選擇。

函數原型:

HFONT CreateFont(int nHeight,
                   int nWidth,
                 int nEscapement,
                 int nOrientation,
                 int fnWeight,
                 DWORD fdwltalic,
                 DWORD fdwUnderline,
                 DWORD fdwStrikeOut,
                 DWORD fdwCharSet,
                 DWORD fdwOutputPrecision,
                 DWORD fdwClipPrecision,
                 DWORD fdwQuality,
                 DWORD fdwPitchAndFamily,
                 LPCTSTR lpszFace);

nHeight是字體的高度。

nWidth是字體的寬度。

nEscapement是字體的傾斜角。

nOrientation是字體的傾斜角。

fnWeight是字體的粗細。

fdwItalic是字體是否斜體。

fdwbUnderline是字體是否有下划線。

fdwStrikeOut是字體是否有刪除線。

fdwCharSet是字體使用的字符集。

fdwOutPrecision是指定如何選擇合適的字體。

fdwClipPrecision是用來確定裁剪的精度。

fdwQuality是怎么樣跟選擇的字體相符合。

fdwPitchAndFamily是間距標志和屬性標志。

lpszFacel是字體的名稱。


免責聲明!

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



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