CXXXView中增加数组(画线、画笔、画刷、位图、透明画刷、连续画图同理)

1、在CXXXView.h中

DECLARE_MESSAGE_MAP()前声明函数

void OnLButtonDown(UNIT nFlags,CPoint point);

2、BEGIN_MESSAGE-----END_MESSAGE之间增加消息响应宏

ON_WN_LBUTTONDOWN()

通过宏把消息响应和消息响应函数关联起来

3、在源文件中增加函数定义:

void CXXXView::OnLButtonDown(UNIT nFlags,CPoint point)

{

MessageBox("    ");

CView::OnLButtonDown(nFlags,point);

}


------------------------------------------------------------------------------------------------------------------------------------------------------

画线

void CXXXView::OnLButtonDown(UNIT nFlags,CPoint point)

{

m_ptOrigin=point;       //m_ptOrigin成员变量已经声明

CView::OnLButtonDown(nFlags,point);

}

void CXXXView::OnLButtonDown(UNIT nFlags,CPoint point)

{

CClientDc dc(this);

dc.MoveTo(m_ptOrigin);

dc.LineTo(point);

CView::OnLButtonDown(nFlags,point);

}

-----------------------------------------------------------------------------------------------------------------------------------------------------

画笔   有颜色

CPen pen(PS_SOLID, 1, RGB(255, 0, 0));
CClientDC dc(this);
CPen *pOldPen = dc.SelectObject(&pen);

dc.MoveTo(m_ptOrigin);

dc.LineTo(point);

dc.SelectObject(pOldPen);//使用SelectObject一定记得最后SelectObject前面

CView::OnLButtonDown(nFlags,point);

------------------------------------------------------------------------------------------------------------------------------------------------------

画刷

CBRUSH

CBrush brush(RGB(255, 0, 0));

CClientDC dc(this);

dc.FillRect(CRect(m_ptOrigin,point),&brush);

-----------------------------------------------------------------------------------------------------------------------------------------------------

位图

CBitmap

加载位图

CBitmao::LoadBitmap

BOOL LoadBitmap(UNIT nIDResourse);

在资源视图中添加位图

-------------------------------------------------------------------------------------------------------------------------------------------------------

透明画刷

CClientDC dc(this);
CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));/
/句柄到指针转换

CBrush *pOldBrush = dc.SelectObject(pBrush);

dc.Rectangle(CRect(m_ptOrigin, point));

dc.SelectObject(pOldBrush);

CView::OnLButtonDown(nFlags,point);

-------------------------------------------------------------------------------------------------------------------------------------------------------

连续画图

在View类中增加MouseMove消息、成员变量(m_pOld)     初始化为FALSE

在按下中定义为TRUE

在抬起中定义为FALSE

增加判断

if(成员变量==TRUE)

{

CClientDC dc(this);

dc.MoveTo(m_ptOrigin);
dc.LineTo(point);

m_ptOrigin=point;

}

画出扇形

CClientDC dc(this);
CPen pen(PS_DASH, 1, RGB(255, 0, 0));
CPen *pOldPen = dc.SelectObject(&pen);
if (m_bApplication2View == TRUE)
{
dc.MoveTo(m_ptOrigin);
//CClientDC dc(this);
dc.LineTo(m_pOld);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);

//m_ptOrigin = point;
m_pOld = point;
}
dc.SelectObject(pOldPen);
CView::OnMouseMove(nFlags, point);






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值