正在加载图片...
第16单元多文档界面程序 void CMyView:: OnWidth5O rrWidth = 5: void CMyView: OnWidth7O m n CurrWidth =7 void CMyView: OnUpdateWidthl(CCmdUI= pCmdUI) pCmdUI-Set Check(m nCurrWidth = 1) void CMyView: OnUpdateWidth3(CCmdUI=k pCmdUI) mdUI->SetCheck(m nCurrWidth = 3) void CMyView: OnUpdateWidth5(CCmdUI* pCmdUI) pCmdUI->SetCheck(m nCurrWidth = 5) void CMyView: OnUpdateWidth7(CCmdUI=* pCmdUI) CmdUI->SetCheck(m nCurrWidth = 7) 输入输出:在窗口客户区按下鼠标 左键后移动鼠标(“拖曳”)可显示一条 宽=1 始端不变、终端移动的黑色细线段,放 Hiol xI 松鼠标按键后,该线变为预先确定的颜 色和粗细。使用菜单选项可改变线段的 颜色和粗细(图16-1)。 分析:为了存储所绘图形,自 定义的线段类 CLine应可序列化。为此 CLine类包含了一个没有参数的构造函 数、一个重载的赋值运算符、 Serialize 图16-1绘图程序 ()成员函数,以及 DECLARE SERIAL()宏和 IMPLEMENT SERIAL宏 在文档类的 Serialize()成员函数中调用了 CLine类的 Serialize()函数 所有的鼠标消息和菜单消息响应函数均在视图类中。其中用到了CDC类的成员函数 StrOp2()在移动鼠标期间将绘图模式设置为异或,该模式下有两个特点,一是第2次画第 16 单元 多文档界面程序 333 void CMyView::OnWidth5() { m_nCurrWidth = 5; } void CMyView::OnWidth7() { m_nCurrWidth = 7; } void CMyView::OnUpdateWidth1(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_nCurrWidth == 1); } void CMyView::OnUpdateWidth3(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_nCurrWidth == 3); } void CMyView::OnUpdateWidth5(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_nCurrWidth == 5); } void CMyView::OnUpdateWidth7(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_nCurrWidth == 7); } 输入输出:在窗口客户区按下鼠标 左键后移动鼠标(“拖曳”)可显示一条 始端不变、终端移动的黑色细线段,放 松鼠标按键后,该线变为预先确定的颜 色和粗细。使用菜单选项可改变线段的 颜色和粗细(图 16-1)。 分 析:为了存储所绘图形,自 定义的线段类 CLine 应可序列化。为此, CLine 类包含了一个没有参数的构造函 数、一个重载的赋值运算符、Serialize ()成员函数,以及 DECLARE_SERIAL()宏和 IMPLEMENT_SERIAL 宏。 在文档类的 Serialize()成员函数中调用了 CLine 类的 Serialize()函数。 所有的鼠标消息和菜单消息响应函数均在视图类中。其中用到了 CDC 类的成员函数 SetROP2()在移动鼠标期间将绘图模式设置为异或,该模式下有两个特点,一是第 2 次画 图 16-1 绘图程序
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有