MFC学习笔记之绘图控制

MFC中进行与绘图相关的控制,首先先为VIEW类添加一个成员变量 m_nDrawType,用来指定要画的图形 ,增长相应的菜单项用来绘制 点 直线 矩形 和 椭圆 在菜单项的响应函数中写下面的代码:函数

view plainthis

  1. void CGraphicView::OnDot()   url

  2. {  spa

  3.     // TODO: Add your command handler code here  .net

  4.     m_nDrawType = 1;  code

  5. }  blog

  6.   

  7. void CGraphicView::OnLine()   ip

  8. {  get

  9.     // TODO: Add your command handler code here  it

  10.     m_nDrawType = 2;  

  11. }  

  12.   

  13. void CGraphicView::OnRectangle()   

  14. {  

  15.     // TODO: Add your command handler code here  

  16.     m_nDrawType = 3;  

  17. }  

  18.   

  19. void CGraphicView::OnEllipse()   

  20. {  

  21.     // TODO: Add your command handler code here  

  22.     m_nDrawType = 4;  

  23. }  

知道每种图形相应的序号,而后就要绘图,先是相应LBUTTONDOWM消息,记录下当前点,而后再响应 LBUTTONUP消息 进行绘图操做,代码以下:

view plain

  1. void CGraphicView::OnLButtonDown(UINT nFlags, CPoint point)   

  2. {  

  3.     // TODO: Add your message handler code here and/or call default  

  4.     m_ptOrigin = point;  

  5.     CView::OnLButtonDown(nFlags, point);  

  6. }  

  7.   

  8. void CGraphicView::OnLButtonUp(UINT nFlags, CPoint point)   

  9. {  

  10.     // TODO: Add your message handler code here and/or call default  

  11.     CClientDC dc(this);  

  12.       

  13.     CPen pen(m_nLineStyle,m_nLineWidth,m_clr);  

  14.     dc.SelectObject(&pen);  

  15.       

  16.     CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));  

  17.     dc.SelectObject(pBrush);  

  18.       

  19.     switch(m_nDrawType)  

  20.     {  

  21.     case

更多详细介绍:http://url7.me/lvwE1

相关文章
相关标签/搜索