5.1 插入符
插入符Caret用来提示用户当前相应的位置。如果想要在程序中创建插入符,可以用CWnd类的CreateSolidCaret函数来完成,函数原型如下。
1 Void CreateSolidCaret(int nWidth,int nHeight);//两个参数分别表示插入符的宽度和高度
在一个MFC的单文档应用程序中,对文本的操作通常在View类中实现,要在View窗口创建之后再创建一个插入符,需要使用OnCreate函数。插入符的宽度通常为当前设备表述表中字符的平均宽度的1/8,高度和字符高度相同。
01 int CTextView::OnCreate(LPCREATESTRUCT lpCreateStruct)
02 {
03 if (CView::OnCreate(lpCreateStruct) == -1)
04 return -1;
05 // TODO: Add your specialized creation code here
06 CClientDC dc(this);
07 TEXTMETRIC tm;
08 dc.GetTextMetrics(&tm);
09 CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);
10 ShowCaret();
11 return 0;
12 }
5.2窗口重绘
View类窗口产生和重绘时都要调用OnDraw函数。
5.3字符输入
1.消息捕获
字符输入属于WM_CHAR消息,可以通过捕获WM_CHAR消息来获取键盘输入信息。
2.应该在插入符的位置输出键盘输入信息,输入之前需要先设定插入符位置,输出的时候相应修改插入符位置,以便下次输入输出,在View类区域的任何位置点击鼠标,设定插入符位置。