C++学习笔记:文本编程

2014-11-16 12:00:25 · 作者: · 浏览: 26

  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类区域的任何位置点击鼠标,设定插入符位置。