本文目的:用VC++实现文字的编辑和修改的基本功能,及字体和文字颜色的平滑显示的简单功能。
基于vs工具的MFC工程,下面操作均在生成的视图类下进行。
一、插入符的创建
① void CreateSolidCaret(int nWidth, int nHeight) 函数在程序中创建插入符。
nWidth 是指插入符的逻辑宽度,同理nHeight是指其逻辑宽度。
该函数在窗口创建后的WM_CREATE 消息的响应函数OnCreate中添加。
nWidth nHeight 的值可为当前设备描述表中的当前字体的信息。
通过 ② BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics) const 函数获取。首先定义一个TEXTMETRIC 结构体类型的变量tm,然后将变量tm的地址传入该函数,通过调用,它会用设备描述表中当前字体的信息来填充这个结构体。
结构体中我们所需要的信息为: tm.tmAveCharWidth ;为当前字体平均宽度,tm.tmHeight 为当前字体高度。
也可以通过获取位图信息创建位图插入符,使用 ③ void CreateCaret(CBitmap * pBitmap) 。
通过函数①和③创建的插入符需要调用④ ShowCaret() 才能显示在视图类窗口上。
二、窗口的重绘
windows程序运行时,如果程序窗口大小发生变法,窗口会发生重绘,窗口已输入的文字和图形将会被擦除掉。</