VC中利用MFC设计绘图程序初步
2012-07-17 19:47
316 查看
时间:2011-04-22 zieckey -
首先我们说下通过鼠标的移动来绘制直线。
这里要捕获到鼠标的两个消息:
WM_LBUTTONDOWN, WM_LBUTTONUP。响应WM_LBUTTONDOWN消息记录直线的起始点,响应 WM_LBUTTONUP消息记录直线的终点并绘制直线。
好了,我们看看怎么响应。
void CDrawView::OnLButtonDown(UINT nFlags, CPoint point) { //MessageBox("Left Button Clicks DrawView"); m_ptOrigin = point ; //这里先定义了一个内部变量保存直线的起始点 CView::OnLButtonDown(nFlags, point); }
下面看看响应WM_LBUTTONUP消息记录直线的终点并绘制直线。
//方法一
void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) { HDC hdc; hdc = ::GetDC(m_hWnd); //调用全局函数 MoveToEx (hdc,m_ptOrigin.x,m_ptOrigin.y,0); LineTo(hdc,point.x,point.y); ::ReleaseDC(m_hWnd,hdc); CView::OnLButtonUp(nFlags, point); }
//方法二
void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) { CDC *pDC = GetDC(); pDC->MoveTo(m_ptOrigin); pDC->LineTo (point); ReleaseDC(pDC); }
//方法三
void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) { CClientDC dc (this) ; //CClientDC对象构造的时候就调用了GetDC,析构的时候调用 ReleaseDC ,只能访问客户区 CClientDC dc(GetParent()); dc.MoveTo (m_ptOrigin); dc.LineTo(point); }
//方法四
void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) { CWindowDC dc (this) ; //CWindowDC可以访问客户区和非客户区 dc.MoveTo(m_ptOrigin); dc.LineTo(point); } void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) { CWindowDC dc(GetDesktopWindow()) ; //现在可以访问桌面 dc.MoveTo(m_ptOrigin); dc.LineTo(point); }
相关文章推荐
- VC中利用MFC设计绘图程序初步
- VC中利用MFC设计绘图程序初步
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息
- VC中MFC下的绘图初步解析
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息。
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息。
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息
- VC中MFC下的绘图初步解析
- VC/MFC 设置程序与文件关联与双击文件获取文件路径
- MFC文档(SDI)应用:绘图程序(画圆、画线、鼠标事件)
- MFC和VC++写的电脑关机小程序(源码+下载)
- VC++在MFC程序中如何注册/注销ActiveX控件(.OCX)
- VC++设计图形显示网络流量程序
- 利用"NOTIFYICONDATA"实现MFC的托盘程序
- MFC “打开文件窗口”和“保存文件窗口”的设计-利用CFileDialog
- VC++绘图时,利用双缓冲解决屏幕闪烁 转载
- 急求VC++语言编写的MFC记事本程序源码啊?
- VC++中的MFC程序的执行过程