(7)一步一步开发一个CAD之对实体集及选择集进行删除,捡选

上一步开发了对实体和选择集进行操作的类后,再实现捡选,删除就很简单了

删除图形只要把图形从选择集中删掉就可以了

(1)选择

class CSelect : public CComand
{
public:
 CSelect();
 virtual ~CSelect();
public:
 void OnLButtonDown(UINT nFlags,  CPosition pos);
    void OnMouseMove(UINT nFlags,  CPosition pos);
private:
 CHandleCG* m_hand;
 
};

 

 

CSelect::CSelect()
{
 m_hand = new CHandleCG(&g_pDoc->m_solid, &g_pDoc->m_select);
}

void CSelect::OnLButtonDown(UINT nFlags,  CPosition pos)
{
    m_hand->AddSelect();
}

void CSelect::OnMouseMove(UINT nFlags,  CPosition pos)
{
    CDC *pDC = g_pView->GetDC();
    float dis = PICK_RADIU * ( g_pView->m_scale );
 m_hand->DrawSelect(pDC, pos, dis, Normal, Select);
}

CSelect::~CSelect()
{

 delete m_hand;//
}

 

 

(2)取消选择

class CUnSelect : public CComand
{
public:
 CUnSelect();
 virtual ~CUnSelect();
public:
 void OnLButtonDown(UINT nFlags,  CPosition pos);
    void OnMouseMove(UINT nFlags,  CPosition pos);
private:
 CHandleCG* m_hand;
 
};

 

 

CUnSelect::CUnSelect()
{
 m_hand = new CHandleCG(&g_pDoc->m_select, &g_pDoc->m_solid);
}

void CUnSelect::OnLButtonDown(UINT nFlags,  CPosition pos)
{
    m_hand->AddSelect();
}

void CUnSelect::OnMouseMove(UINT nFlags,  CPosition pos)
{
    CDC *pDC = g_pView->GetDC();
    float dis = PICK_RADIU * ( g_pView->m_scale );
 m_hand->DrawSelect(pDC, pos, dis, Select, Normal);
 g_pView->ReleaseDC(pDC);
}

CUnSelect::~CUnSelect()
{

 delete m_hand;//
}

 

(3)删除

class CDelete : public CComand
{
public:
 CDelete();
 virtual ~CDelete();
public:
 void OnLButtonDown(UINT nFlags,  CPosition pos);
    void OnMouseMove(UINT nFlags,  CPosition pos);
private:
 CHandleCG* m_hand;
 
};

 

 

CDelete::CDelete()
{
 m_hand = new CHandleCG(&g_pDoc->m_select, &g_pDoc->m_solid);
}
void CDelete::OnLButtonDown(UINT nFlags,  CPosition pos)//删除实体并重画
{  
 CDC *pDC = g_pView->GetDC();
    m_hand->DeleteSolid(pDC);
 g_pView->ReleaseDC(pDC);
}

void CDelete::OnMouseMove(UINT nFlags,  CPosition pos)//移动监测选中的实体
{
    CDC *pDC = g_pView->GetDC();
    float dis = PICK_RADIU * ( g_pView->m_scale );
 m_hand->DrawSelect(pDC, pos, dis, Select, Normal);
 g_pView->ReleaseDC(pDC);
}

CDelete::~CDelete()
{

 delete m_hand;//
}

转载于:https://www.cnblogs.com/lizhengjin/archive/2008/09/11/1289266.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值