首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

100分,请教怎么画垂直的直线段,并且获得其横轴方向的位置

2012-02-23 
100分求助,请问如何画垂直的直线段,并且获得其横轴方向的位置我写了一个mfc程序,用于打开显示一段波形文件

100分求助,请问如何画垂直的直线段,并且获得其横轴方向的位置
我写了一个mfc程序,用于打开显示一段波形文件,显示之后,有滚动条可以拖动,使波形滚动显示后面的内容。
        现在我想在波形的一些位置做标记,标记上垂直线段,并且记录这个位置在原始波形中处于第几个点,我想画图的时候,鼠标点击我要标记的位置,而后画出垂直线,请问我该怎么做?

[解决办法]
这个容易吧!主要是个坐标变换问题。
[解决办法]
GDI:

给你的类添加一个vector <int> 成员变量vctVert;然后在鼠标点击时获得横坐标并保存在该变量里;视图刷新时添加以下代码:

int nSize = vctVert.size(),
nInd = 0;
for(; nInd < nSize; ++nInd)
{
pDC-> MoveTo(vctVert.at(nInd), nYStart);
pDC-> LineTo(vctVert.at(nInd), nYEnd);
}

记得初始化时将该变量清空:vctVert.clear();
[解决办法]
楼主连波形都能画出来,却画不了一个竖线?不太可能吧!
[解决办法]
1.垂线在绘制的时候,不就是横坐标不同,综坐标相同不就可以了.
如: CPoint point1(10, 100),CPoint point2(10,500),
pDC-> MoveTo(point1);
pDC-> LineTo(point2)这样画出来不就是垂线了吗?
2.画线在哪里,主要是看用途了,如果只是简单的一条线,想怎么画就怎么画.
但如果是有可多需要重新绘制,则需要考虑效率的问题了.因为一旦重绘,不是有些图象丢了
就是需要绘的地方太多,影响效率

[解决办法]
下载的程序需要消化,看程序内部是如何实现的了,并不简单的是想我们提出的这样.
因为有些程序内部已经实现了如何画线,LZ只需要调现成的接口,传递需要的参数就可以了
[解决办法]
HCURSOR hCursor = LoadCursor(NULL,MAKEINTRESOURCEA(32649));
SetCursor(hCursor);
使鼠标变成手状,
[解决办法]
也可以自己在BMP中画形状然后:
HCURSOR hCursor = LoadCursor(NULL,MAKEINTRESOURCEA(ID_MOUSEMAP));
SetCursor(hCursor);
[解决办法]
可以在资源文件中加载一个鼠标的形状,可以是手型,也可以是笔型,也可以是一个十字型,主要是看哪种更加的想象.

热点排行