在学习《VC++深入详解》的时候,对着孙鑫老师的视频学习。刚开始学习画线,遇到了几个问题。
画线的时候,为什么我的电脑画线有些迟钝呢?鼠标点下去,然后拉开一段距离后松开,线还不显示出来,要等到再次点击松开之后才会显示。这是为什么呢?在别人的电脑上不会产生这类问题。
画线采用的方法是,在CTestView类里面定义CPoint变量m_ptOrigin,存放鼠标左键点击时的坐标。
在CTestView里面添加OnLButtonDown和OnLButtonUp函数。在OnLButtonUp函数里面添加代码
CClientDC dc(this);
dc.MoveTo(m_ptOriginal);
dc.LineTo(point);
还有一个问题。孙鑫老师介绍一个CWindowDC dc(GetDesktopWindow())和CWindowDC dc(GetDesktopWindow())可以分别获取桌面窗口和CMainFrame窗口,我按照这个方法写,但是没能画出对应的线。还有一个疑问是,线的起点是通过CTestView里面的OnLButtonDown函数获取的,跟这个类相联系的是View窗口,但是如果那个起点都在view窗口外面的话,那起点怎么获取得到呢?
求解答啊,各位大神!
画线的时候,为什么我的电脑画线有些迟钝呢?鼠标点下去,然后拉开一段距离后松开,线还不显示出来,要等到再次点击松开之后才会显示。这是为什么呢?在别人的电脑上不会产生这类问题。
画线采用的方法是,在CTestView类里面定义CPoint变量m_ptOrigin,存放鼠标左键点击时的坐标。
在CTestView里面添加OnLButtonDown和OnLButtonUp函数。在OnLButtonUp函数里面添加代码
CClientDC dc(this);
dc.MoveTo(m_ptOriginal);
dc.LineTo(point);
还有一个问题。孙鑫老师介绍一个CWindowDC dc(GetDesktopWindow())和CWindowDC dc(GetDesktopWindow())可以分别获取桌面窗口和CMainFrame窗口,我按照这个方法写,但是没能画出对应的线。还有一个疑问是,线的起点是通过CTestView里面的OnLButtonDown函数获取的,跟这个类相联系的是View窗口,但是如果那个起点都在view窗口外面的话,那起点怎么获取得到呢?
求解答啊,各位大神!
解决方案 »
- 关于vs2008,cximage使用问题
- 算法求解,高人救命,实在搞不定
- 哪位朋友知道用smtp.163.com发邮件 ,怎样结束输入?
- 内嵌汇编,得不到CALL的返回值!!!
- 如何在ATL中添加IInternetProtocol接口
- 问一个处理事务的问题
- 高难度问题
- 请教outlook和outlook express账户信息密码的加密原理
- >>>>>>>>>>100征解:如何象天网防火墙那样拦截IP包。。。。。。?
- 为什么CMCIClass、CPtrList不能用?为什么CArchive::Load/CArchive::Store不能用?
- 求助高手 已知平面方程和外边界,怎样将其在屏幕显示出来
- [散发]祝大家中秋快乐!
dc.MoveTo(m_ptOriginal);
dc.LineTo(point);
这样画的是直线,首先鼠标点下获得直线的起点,然后一直按着左键移动;当松开左键时,才画出一条从鼠标左键按下位置到鼠标左键松开位置的直线。如果画的是曲线,那就会立即显示出来,当然和话直线的方式也有些不一样的。这些问题都是一些细节的问题,如果你的鼠标在画线区域外面按下了,这样就不能画线了,如果想了解细节请参阅计算机图形学方面的知识。