文本按一定字体输出是界面常用的功能。
用到字体类CFont 和 文本输出函数dc.TextOut()
与一般的类对象使用方法一样:CFont也是创建、初始化、设定属性、调用、删除。
三点注意:
1.设定一次属性,显示一次设定的样式。
2.用完后记得恢复到默认设置样式。
3.VC6.0->VS2019 不通的是 TextOut->TextOutW
4.对CPEN CBRUSH的使用示例。
结果图:
这太简单了,直接上代码。
- 定义 .h文件中
CFont m_newFont;//新字体 需要用创建函数,所以用变量
CFont *m_pOldFont;//选新字体之前的字体 之前是实例,所以用指针
- 初始化 .cpp文件
OnInitDialog()
m_pOldFont=NULL;
m_newFont.CreatePointFont(180,_T("隶书")); //创建新字体
- 调用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();
}