博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
孙鑫视频---文本编程
阅读量:6253 次
发布时间:2019-06-22

本文共 1412 字,大约阅读时间需要 4 分钟。

掌握CDC的文字处理程序的编写,如何产生自定义字体和自定义插入符,熟悉对CString类的使用。

通过对卡拉OK程序的编写,讲解定时器的使用和DrawText函数的巧妙运用。讲解如何使用CDC的裁减功能。

创建插入符

int CTextView::OnCreate(LPCREATESTRUCT lpCreateStruct){    if (CView::OnCreate(lpCreateStruct) == -1)        return -1;    // TODO:  在此添加您专用的创建代码    CreateSolidCaret(20,100);    ShowCaret();    return 0;}

结果图:

问题:光标太大,应该随着字体变化

字体的信息

基线以上到最高点叫升序的高度,基线以下到最低点叫做降序的高度

字体的高度=升序的高度+降序的高度

当回车输入下一行文字时,才不会覆盖上一行的文字

 

调整插入符大小

int CTextView::OnCreate(LPCREATESTRUCT lpCreateStruct){    if (CView::OnCreate(lpCreateStruct) == -1)        return -1;    // TODO:  在此添加您专用的创建代码    CClientDC dc(this);    TEXTMETRIC tm;    dc.GetTextMetrics(&tm);    CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);    ShowCaret();    return 0;}

 

在屏幕上显示文字

void CTextView::OnDraw(CDC* pDC){    CTextDoc* pDoc = GetDocument();    ASSERT_VALID(pDoc);    if (!pDoc)        return;    // TODO: 在此处为本机数据添加绘制代码    //CString str("杨宇晴");    CString str;    str="武建朋";    //输出到屏幕上,第一个参数x坐标,第二个参数y坐标    pDC->TextOut(50,50,str);}

 

问题点:找字符串资源

点击Text.rc

通过ID加载字符串资源

void CTextView::OnDraw(CDC* pDC){    CTextDoc* pDoc = GetDocument();    ASSERT_VALID(pDoc);    if (!pDoc)        return;    // TODO: 在此处为本机数据添加绘制代码    //CString str("杨宇晴");    CString str;    str="武建朋";    //输出到屏幕上,第一个参数x坐标,第二个参数y坐标    pDC->TextOut(50,50,str);    str.LoadString(IDS_YANGYUQING);//自定义ID值    pDC->TextOut(0,200,str);}

 

转载于:https://www.cnblogs.com/yangyuqing/p/10244508.html

你可能感兴趣的文章
【C++ Primer每天刷牙】一间 迭代器
查看>>
:施密特建议尾随年轻的专业人士了解技术公司
查看>>
软件项目如何选型
查看>>
UVa 11205 - The broken pedometer
查看>>
[书目20150727]选择重于一切(扎克伯格给年轻人的37个人生忠告)
查看>>
Apache与Nginx的优缺点比较
查看>>
【第二篇】Volley的使用之加载图片
查看>>
hdu oj1102 Constructing Roads(最小生成树)
查看>>
减少可执行程序size的三个常用软件
查看>>
窥探Swift之别样的枚举类型
查看>>
pyspark简要原则
查看>>
【移动开发】Android中WIFI开发总结(二)
查看>>
idea git merge代码
查看>>
云计算设计模式(二十二)——静态内容托管模式
查看>>
[Angularjs]ng-file-upload上传文件
查看>>
修改类不用重启Tomcat加载整个项目
查看>>
iframe刷新父页面
查看>>
KL46 custom board SWD reset is never asserted - SWS Waveform
查看>>
如何提高团队管理能力1
查看>>
Redmine中使用SVN进行版本管理经验总结
查看>>