posts - 131, comments - 12, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

简单绘图

Posted on 2012-09-28 16:08 盛胜 阅读(342) 评论(0)  编辑 收藏 引用 所属分类: vc++深入详解
建立工程文件
选择单文档其他全部默认


添加LButtonDown和LButtonUp的消息响应函数

点击上边的  查看(v)->建立类向导

这里已经点击过Add Funtion ,点击后工程自动添加消息函数。点击edit code可以进行代码编辑。
void CTestView::OnLButtonDown(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default
m_ptOrigin=point;
//MessageBox("view Clicked!");
CView::OnLButtonDown(nFlags, point);
}
同理OnLButtonUp消息函数也一样添加,代码为下边:
void CTestView::OnLButtonUp(UINT nFlags, CPoint point) 
{
//1
/*
// TODO: Add your message handler code here and/or call default
//首先获取窗口的设备描述表
HDC hdc;
//m_hWnd是CWnd的一个成员变量用来保存窗口句柄,而CTestView派生于CWnd类。GetDC全局函数获取得当前窗口的设备描述表
hdc = ::GetDC(m_hWnd);
//移动到线条的起点
MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);
//画线
LineTo(hdc,point.x,point.y);
//释放设备描述表
::ReleaseDC(m_hWnd,hdc);
*/
//CWnd类提供了成员函数GetDC和ReleaseDC,先利用Platform SDK函数实现画线功能时,这两个函数前面都加::表示全局
//函数
//2
/*
//MFC封装了CDC类(一个设备描述表)
CDC* pDC=GetDC();
pDC->MoveTo(m_ptOrigin);
pDC->LineTo(point);
ReleaseDC(pDC);
*/
//3
/*
//CClientDC派生于CDC类,构造时自动调用GetDC函数。一旦定义了CClientDC的一个对象就不用再调用GetDC和ReleaseDC
//CClientDC dc(this);
CClientDC dc(GetParent());
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
*/
//4
        //CwindowDC的优势:对象可以访问整个窗口区域
//CWindowDC dc(this);
CWindowDC dc(GetParent());
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
CView::OnLButtonUp(nFlags, point);
}

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理