font.CreatePointFont(100, _T("黑体"));
时间: 2024-04-21 09:26:24 浏览: 82
这行代码的作用是创建一个字体对象,并设置字体的大小为100磅,字体名称为“黑体”。在Windows编程中,通过创建字体对象来设置控件或窗口的字体样式。CreatePointFont()是MFC库中的函数,可以创建指定大小和字体名称的字体对象。其中第一个参数表示字体大小,第二个参数表示字体名称。_T()是一个宏定义,用于将字符串转换为宽字符格式,以便在Unicode字符集下使用。
相关问题
// 控件初始化 Box.SetCurSel(1); EDIT_Score.SetReadOnly(1); m_showFont1.CreatePointFont(200, L"黑体"); GetDlgItem(IDC_EDIT_score)->SetFont(&m_showFont1); GetDlgItem(IDC_BUTTON_Start)->SetFont(&m_showFont1); GetDlgItem(IDC_BUTTON_Stop)->SetFont(&m_showFont1); m_showFont2.CreatePointFont(150, L"Consolas"); GetDlgItem(IDC_Score)->SetFont(&m_showFont2); GetDlgItem(IDC_Speed)->SetFont(&m_showFont2); m_showFont3.CreatePointFont(100, L"Consolas");
这是一个 MFC 程序中的对话框类的成员函数,用于初始化控件。首先设置组合框控件 Box 的当前选中项为第二项(下标为 1)。然后设置得分编辑框控件 EDIT_Score 为只读模式。接着创建一个 CFont 对象 m_showFont1,并调用 CreatePointFont() 函数创建一个字号为 200、字体为“黑体”的字体对象。接着调用 GetDlgItem() 函数获取“得分”编辑框和“开始”、“停止”按钮的句柄,然后调用 SetFont() 函数将字体对象设置为这些控件的字体。接下来创建一个 CFont 对象 m_showFont2,并调用 CreatePointFont() 函数创建一个字号为 150、字体为“Consolas”的字体对象。然后调用 GetDlgItem() 函数获取“得分”标签和“速度”标签的句柄,然后调用 SetFont() 函数将字体对象设置为这些控件的字体。最后创建一个 CFont 对象 m_showFont3,并调用 CreatePointFont() 函数创建一个字号为 100、字体为“Consolas”的字体对象。
void CScreenWnd::OnPaint() { CPaintDC dc(this); //获取控件大小 CRect rect; GetClientRect(&rect); //使用黑色填充背景 dc.FillSolidRect(rect, RGB(0, 0, 0)); if (!m_strWord.IsEmpty() && m_strExplain.IsEmpty())//只显示单词不显示释义 { //创建字体 CFont font; font.CreatePointFont(400, _T("Times New Roman")); //选择字体 CFont* pOldFont = dc.SelectObject(&font); //设置接下来绘制的单词的颜色 dc.SetTextColor(RGB(0, 0, 255)); //获取接下来绘制的单词的显示矩形大小 CSize size = dc.GetTextExtent(m_strWord); //计算单词显示的位置 int x = rect.Width() / 2 - size.cx / 2; int y = rect.Height() / 2 - size.cy / 2; //绘制单词 dc.TextOut(x, y, m_strWord); //还原字体 dc.SelectObject(pOldFont); //释放字体 font.DeleteObject(); } if (!m_strWord.IsEmpty() && !m_strExplain.IsEmpty())//同时显示释义和单词 { //创建字体 CFont font; font.CreatePointFont(400, _T("Times New Roman")); //选择字体 CFont* pOldFont = dc.SelectObject(&font); //获取接下来绘制的单词的显示矩形大小 CSize sizeWord = dc.GetTextExtent(m_strWord); //获取接下来绘制的释义的显示矩形大小 CSize sizeExplain = dc.GetTextExtent(m_strExplain); //计算单词显示的位置 int x = rect.Width() / 2 - sizeWord.cx / 2; int y = rect.Height() / 2 - (sizeWord.cy + sizeExplain.cy) / 2; //设置接下来绘制的单词的颜色 dc.SetTextColor(RGB(0, 0, 255)); //绘制单词 dc.TextOut(x, y, m_strWord); //计算释义显示的位置 x = rect.Width() / 2 - sizeExplain.cx / 2; y = y + sizeWord.cy; //设置释义显示的颜色 dc.SetTextColor(RGB(0, 255, 0)); //绘制释义 dc.TextOut(x, y, m_strExplain); //还原字体 dc.SelectObject(pOldFont); //释放字体 font.DeleteObject(); } }
这段代码是一个 MFC 窗口类中的 OnPaint() 函数,用于绘制窗口的内容。这个窗口类名为 CScreenWnd。这个函数的实现逻辑是:先使用黑色填充整个窗口背景,然后根据成员变量 m_strWord 和 m_strExplain 的值来绘制单词和释义。如果只有单词没有释义,则只绘制单词,如果同时存在单词和释义,则分别绘制它们,并使用不同的颜色进行区分。在绘制之前,先创建一个字体,然后选择这个字体,并设置字体颜色和大小,最后使用 TextOut() 函数进行绘制。
阅读全文