C++-MFC(5)-字体和文本输出-CFONT-CDC(CPen,CBrush)-VS2019-实例源码

文本按一定字体输出是界面常用的功能。

用到字体类CFont 和 文本输出函数dc.TextOut()

与一般的类对象使用方法一样:CFont也是创建、初始化、设定属性、调用、删除。

三点注意:

1.设定一次属性,显示一次设定的样式。

2.用完后记得恢复到默认设置样式。

3.VC6.0->VS2019 不通的是 TextOut->TextOutW

4.对CPEN CBRUSH的使用示例。

结果图:

这太简单了,直接上代码。

  1. 定义 .h文件中

CFont m_newFont;//新字体  需要用创建函数,所以用变量

CFont *m_pOldFont;//选新字体之前的字体 之前是实例,所以用指针

  1. 初始化 .cpp文件

OnInitDialog()

m_pOldFont=NULL;

m_newFont.CreatePointFont(180,_T("隶书"));   //创建新字体

 

  1. 调用OnPaint()

CPaintDC dc(this);     //字是依附在paint上的。 

m_pOldFont=(CFont*)dc.SelectObject(&m_newFont);

//1.第一次设置显示

//设置文本、设置背景、指定位置设置输出

dc.SetBkMode(TRANSPARENT);

//设置为红色

dc.SetTextColor(RGB(255,0,0));

dc.Textout(m_nTextX,10,_T("!"));

 

//2.第二次设置显示

//设置为绿色

dc.SetTextColor(RGB(255,0,0));

dc.Textout(m_nTextX,10,_T("!"));

 

//3.恢复以前的字体

dc.SelectObject(m_pOldFont);

4.Cpen,CBrush的使用

void dlg::DrawWave(CDC *pDC,CRect &rectPicture)
{
	//1.定义
	float fX;//相邻两个点的坐标距离
	float fY;
	int nX;//存储绘图点的横坐标
	int nY;
	CPen newPen;//创建新画笔
	CPen *pOldPen;//存放旧画笔
	CBrush newBrush;//创建新画刷
	CBrush *pOldBrush;//存放新画刷


    //创建新的
    newBrush.CreateBrush(RGB(0,0,0));
    //选择新的,并将旧的指针保存到pOldBrush
    pOldBrush=pDC->SelectObject(&newBrush);
    //设置黑色背景
    pDC->Rectangle(rectPicture);
    //恢复旧画刷
    pDC->SelectObject(pOldBrush);
    //删除
    newBrush.DeleteObject();


    //创建新笔 
    newPen.CreatePen(PS_SOLID,1,RGB(0,255,0));
    //选择新笔
    pOldPen=pDC->SelectObject(&newpen);

    //...

    //恢复旧画笔
     pDC->SelectObject(pOldpen);
     //删除新画笔
     newpen.DeleteObject();



}

 

 

posted @ 2019-11-19 19:16  jasmineTang  阅读(431)  评论(0)    收藏  举报