1定义结构体表示图形元素
以Type区分图形元素,结构体成员表示图形元素属性(例如位置、大小、选中状态等)。
2 CList存储图形元素
//定义 CList<Struct *tagNode, Struct *tagNode> nodeList; //遍历 POSITION pos; for(pos=nodeList.GetHeadPosition(); pos != Null; nodeList.GetNext(pos)) { ,,, }
3删除多个图形元素应从后往前删除,因为删除某个图形元素后,会影响后面图形元素的POSITION。
POSITION pos = NodeLink.GetTailPosition(); tagNODE* pNode = NULL; while (pos != NULL) { pNode = NodeLink.GetAt(pos); if(pNode != NULL && pNode->bSelect) { RemoveNode(pNode); pos = NodeLink.GetTailPosition(); } else { NodeLink.GetPrev(pos); } }
4定义操作标志结构体
OnLButtonDown、OnLButtonUp、OnMouseMove等根据操作标志分别处理操作。
5图形元素随鼠标移动
获取鼠标坐标,给图形元素坐标赋值。