如何创建插入符
1.可以利用CWnd 类的CreateSolidCaret 函数来完成创建操作。
但这样创建的插入符刚开始是隐藏的,需用ShowCaret 来显示。
void CreateSolidCaret( int nWidth, int nHeight ); // 创建插入符
void ShowCaret( ); // 显示插入符
void HideCaret( ); // 隐藏插入符
2.创建插入符时,需指定其宽度同高度,这需求获取当前文本字体属性信息才可确定。
我们可通过CDC 类的GetTextMetrics函数来取得设备环境中的字体度量。
BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics ) const;
其中,TEXTMETRIC 结构用于存储字体度量信息。
3.创建图形插入符
先创建一个位图资源,再定义一个CBitmap类实例并加载之前已创建的位图资源
再利用CWnd 类的CreateCaret函数来创建图形播放符。
void CreateCaret( CBitmap* pBitmap );
4.设置插入符位置
static void PASCAL SetCaretPos( POINTpoint );
窗口重绘
1. 如何定义字符串对象
定义一个CString 对象,并用字符串来初始化。
CStirng 类的构造函数
CString( ); // 缺省构造函数
CString( const CString& stringSrc ); // 复制构造函数
CString( TCHAR ch, int nRepeat = 1 ); // 用字符初始化
CString( LPCTSTR lpch, int nLength ); // 用字符串前nLength 个字符初始化
CString( LPCSTR lpsz ); // 用字符串初始化
CString( LPCWSTR lpsz ); // 用宽字符串初始化
CString( const unsigned char* psz ); : // 用字符串初始化
也可用LoadString函数来加载一个已定义的字符串资源
BOOL LoadString(UINT nID);
路径层
1.通过CDC 类的GetTextExtent 函数,可获得一个字符串在当前设备环境中显示所需的长度同宽度
CSize GetTextExtent( LPCTSTR lpszString, int nCount ) const;
CSize GetTextExtent( const CString& str ) const;
2.设置路径层
通过CDC类的成员函数 BeginPath 同 EndPath 函数来设置
3.设置裁剪模式
经过这样的设置后,可将当前路径区域与非路径区域区分开来
BOOL SelectClipPath( int nMode );
两个实例: 字符输入,字幕变色