Example #1
0
// 그룹핑을 해제시키는 함수
void Group::DisGrouping(CPtrList& listObj, CPtrList& listObj2)
{
	//노드 데이터 부분의 그룹 해제
	POSITION posNode = this->NodeData.GetHeadPosition();
	while (posNode) //노드 데이터 리스트 순회
	{
		Figure* pObj = (Figure*)this->NodeData.GetNext(posNode);
		pObj->SetGrouped(FALSE); //그룹이 아님을 표시
		pObj->setSelected(TRUE);
		listObj.AddTail(pObj); //선택 리스트에 넣음
		listObj2.AddTail(pObj); //선택 리스트에 넣음
	}
	this->NodeData.RemoveAll();

	//차일드 부분의 그룹 해제
	POSITION posChild = this->Child.GetHeadPosition();
	while (posChild) //차일드 리스트 순회
	{
		Group* pObj = (Group*)this->Child.GetNext(posChild);
		pObj->SetGrouped(FALSE); //그룹이 아님을 표시
		listObj.AddTail(pObj); //선택 리스트에 넣음
		listObj2.AddTail(pObj); //선택 리스트에 넣음
	}
}