新建mfc应用程序,单文档,起名Text,先编译一下

首先要创建一个插入符,用CreateSolid

窗口的高度宽度,可以通过GetSystemMetrics()函数获取

视类是覆盖在框架类之上的

创建消息响应函数,增加并编辑

设置宽高

但是GetSystemCaret会隐藏,所以需要把它显示一下

用ShowCaret()函数

如何让插入符根据字体的大小去改变

首先要获取到字体描述表中字体的信息,用一个函数(可以根据英文意思猜想一下)

GetTextMetrics ,他的结构体中需要一个指针

结构体中包含了很多成员,如高度,升序(tmAscent),降序(tmDscent)

首先构造一个DC,用CClientDC

用法是:CClientDC dc(this);//this一般指向本窗口或当前活动视图dc.TextOut(10,10,str,str.GetLength());//利用dc输出文本

CDC类有很多成员函数,可以利用dc调用成员函数,这样可以获取到字体信息了

高度宽度可以重新设置获取,为什么/8,因为这只是找一个正常的值

输出文字用CString类,有一个可变长度的字符组成

输出用TextOut

运行(注以图片作插入符的没写)

LoadString可以装载一个nID资源,到现存的String当中,

在蓝色空白处双击

修改ID和Caption

加载字符串资源,然后利用pDC再次将其在(0,200)的位置将str输出

运行

路径城:就像打仗划界线一样,走的轨迹就是路径城

创建一个路径城将刚才的字体用一个矩形圈起来

如何获取一个字符的长度

用GetTextExtend函数,传递字符串,返回CSize对象,有两个成员变量,表示宽度和高度

可以运行看一下,并没有矩形

可以将beginpath和endpath的注释掉,在运行一次

做一个网格状,空间多留几个像素,如10ge,画横线,竖线

还在下面写

做剪切区域

如何改变定位的位置,用户在窗口每输入一个字符的时候就多了一个

增加一个成员变量

先添加消息响应

增加成员变量

先初始化,清空

再添加一个消息响应

将插入符移动,用SetCaretPos()函数,参数只有一个点

运行,图像插入符可以移动了

清空CString保存的对象

添加成员变量

初始化为零

将初值保存下来

0x0d表示回车

求字体的高度,用Get。。。求字体度量,求当前字体的dc

对回车的处理

对退格键的处理,删除一个个字符,插入符就向前移动,如何实现呢

删除时就是让输出的字符在屏幕上看不见,退格键的阿斯克码十六进制16,十进制8,0x08

1 获取文本色,文本颜色是背景色,我们就看不见了,

2 输出字符串,

3 然后减掉一个字符

4 然后设置回他先前的颜色

否则就将字符加到m_strLine中,最后再一次输出

如何让插入符跟随自己输入而移动

又如何确定位置,坐标的移动,然后利用SetCarePos移动到这个点

如何能够运用另一种字体编辑文本呢?用CFont

必须先初始化,与字体资源关联起来

有三个参数,大小,字体名,CDC指针

创建字体

将字体选单设备描述表中,在pOld中

再用dc将其选择则回去

运行

中文却被擦除掉了

这只是一个简单的字处理。c++提供了很丰富的类,如CRichEditView,可以进行彩色的处理

比EditView功能更多

下面模拟字母变色功能,一个一个字母去变色,但如果想达到平滑的效果

用DrawText

设置定时器

增加消息响应

每隔100毫秒就发送

增加一个成员变量

初始化为零

绘制一个矩形,横坐标为零,纵坐标200,文本颜色输出

运行时会发现文本颜色一个一个自动变色

最新文章

  1. 关于silverlight5 打印功能收集
  2. oracle表空间不足时的处理方法
  3. XML与 HTML
  4. android开发之画图版
  5. HDU 4768 (二分区间---涨姿势)
  6. Ul li 竖排 菜单
  7. highcharts联合jquery ajax 后端取数据
  8. 在 SUSE 11 sp2 上安装 freeradius
  9. 使用Thumbnails对一个文件夹下的所有图片进行压缩处理
  10. axure & Markman
  11. Android零点一度的区别——Matrix
  12. 关于BOM 的详细介绍
  13. iOS正则表达式 分类: ios技术 2015-07-14 14:00 35人阅读 评论(0) 收藏
  14. 在vs2010中显示代码的行数
  15. cocos2D v3.4 在TileMap中开启高清显示
  16. Spark SQL大数据处理并写入Elasticsearch
  17. method.invoke()s
  18. Python常用数据类型
  19. CND网站加速
  20. background-position,有逗号和没逗号:截然不同的结果

热门文章

  1. 图论·Floyd算法·HDU2544&1874 (伪)2066
  2. 基于ffmpeg和libvlc的视频剪辑、播放器
  3. 解决MyEclipse开启后总是不停的在Update index
  4. Web端即时通讯、消息推送的实现
  5. PowerDesigner里面将表中name列值拷贝到comment列
  6. Android ListView拉到顶/底部,像橡皮筋一样弹性回弹复位
  7. pod install fatal: unable to access 'https://chromium.googlesource.com/webm/libwebp/'
  8. Linux开发环境搭建与使用——Linux必备软件之Samba
  9. <LeetCode OJ> 326. Power of Three
  10. oc7--内存分析