绘图应用程序的功能实现与状态管理
1. 插入符号区域获取
当键盘设置为覆盖输入状态时,插入符号标记应为一个小的闪烁矩形,其宽度应为当前字体中平均字符的宽度。以下是获取插入符号区域的代码:
CRect TextFigure::GetCaretArea(KeyboardState eKeyboardState)
{
CPoint ptCaret(m_ptText.x + m_caretArray[m_iEditIndex],
m_ptText.y);
switch (eKeyboardState)
{
case KS_INSERT:
{
CSize szCaret(1, m_szText.cy);
return CRect(ptCaret, ptCaret + szCaret);
}
break;
case KS_OVERWRITE:
{
CSize szCaret(m_iAverageWidth, m_szText.cy);
return CRect(ptCaret, ptCaret + szCaret);
}
break;
}
return CRect();
}
此代码根据键盘状态(插入或覆盖)返回不同大小的插入符号区域。
2. 图形文件管理类
为了管理图形类对象的保存和加载,引入了 FigureFileManager
类。在保存图