5-显示光标和文本

显示光标和文本

1.MFC程序的四个阶段

  • 构造:对象被创建阶段

  • Create阶段:对象被绑定到窗体阶段

  • ShowWindow/DoModel阶段

  • Destroy阶段:销毁窗体

  • Delete阶段:销毁对象

2.添加光标

在Create阶段加入光标。点击View里的属性的消息,选择OnCreate,添加

//CClientDC dc(this);		获取设备上下文
TEXTMETRIC tm; //创建字体结构体
dc.GetTextMetrics(&tm); //获取程序当前的字体信息
CreateSolidCaret(3, tm.tmHeight); //使用程序自带的字体来创建光标大小
ShowCaret(); //显示光标

3.读取键盘输入

点击View里的属性的消息,选择OnChar,添加

//OnChar
CClientDC dc(this); //获取设备上下文
m_strText += (TCHAR)nChar; //成员字符串后面增加用户输入的一个字符

InvalidateRect(NULL); //将打印放到OnDraw中,每次输入字符调用刷新(同时每次窗口刷新也都自动将字体再打印一遍)

//OnDraw
pDC->TextOut(0, 0, m_strText); //在设备上下文中输出文本

4.目前问题

  • TextOut函数只支持单行显示,不支持多行,因此回车不能正常使用

  • 光标位置始终固定在开始处,不能随着文字的增加而移动