绘图应用程序的核心功能与实现
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