| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 566 人关注过本帖
标题:新手提问关于鼠标路径显示和存储的问题
取消只看楼主 加入收藏
smallsouth
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-9-29
收藏
 问题点数:0 回复次数:0 
新手提问关于鼠标路径显示和存储的问题

感谢各位大虾关心我的问题:
我要实现的功能是:点击鼠标左键后开始显示鼠标路径,抬起后便停止显示
;在显示路径同时记录鼠标每时刻坐标与position.bin文件中;最后读取bin文件。
现在我的程序中完成了前两个,但是当按下左键开始拖动鼠标时,就报错了。而且是filecore.cpp中的错误,不知道怎么修改。因此现在请教各位资深编程前辈指点一二,小弟不胜感激!!多谢大家了。
主要程序如下:


void CMyView::OnLButtonDown(UINT nFlags, CPoint point)
{
UpdateData(TRUE);
m_beginDraw=false;//判断鼠标是否按下
m_ptOrigin=point;

//建立存储位置的 position文件
//-----------------------------------------------------

route.Format("H:\\route.bin"); File.Open("route",CFile::modeCreate);

//-------------------------------------------------------

CView::OnLButtonDown(nFlags, point);
}


void CMyView::OnMouseMove(UINT nFlags, CPoint point)
{
UpdateData(TRUE);


//显示坐标
//------------------------------------------------------------
CString str;
str.Format("x=%d,y=%d",point.x,point.y);
((CMainFrame*)GetParent())- >m_wndStatusBar.SetWindowText(str);

//-------------------------------------------------------------

if(m_beginDraw){}//如果m_bDraw的值是初始值,即真,则不作图,不记录
else //如果m_bDraw的值已经设为假,则开始画图,记录
{

//开始画路径
//--------------------------------------------------------------
CClientDC dc(this);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
m_ptOrigin=point;
//--------------------------------------------------------------

//开始记录坐标位置与route.bin文件中
//--------------------------------------------------------------

m_pointMouse.x=point.x;
m_pointMouse.y=point.y;


if(File.Open("route",CFile::modeWrite))
{
File.SeekToEnd();
File.Write(&m_pointMouse,sizeof(m_pointMouse));
}

//--------------------------------------------------------------
}

CView::OnMouseMove(nFlags, point);
}


void CMyView::OnLButtonUp(UINT nFlags, CPoint point)
{

m_beginDraw=true;//当鼠标键抬起时,m_bDraw又变成假,则停止作图

//按键抬起
//-------------------------------------
route.Format("%d",File.GetLength());
File.Close();
//-------------------------------------
CView::OnLButtonUp(nFlags, point);
}



调试过程中是没有报告有错误的
只有在执行的时候,鼠标点下左键也没什么,开始拖动后就在Microsoft Visual C++ Debug Library 的对话框中报以下错误

Debug Assertion Failed!
Program:(这里面写的是我声称的可执行文件路径以及文件名)
File:filecore.cpp
Line:121
For information on how your program can cause an assertion
failure,see the Visual C++ documention on asserts.
然后叫我选择终止,重试还是忽略。

其中我查到了filecore.cpp的第121行是这么条语句
ASSERT(m_hFile == INVALID_HANDLE_VALUE);
// CFile objects are always binary and CreateFile does not need flag



我暂时想不出来为什么,哪位高手能不能点处错误以后,指明一个大体得努力方向阿,多谢了!!

搜索更多相关主题的帖子: 鼠标 路径 左键 
2007-09-29 09:26
快速回复:新手提问关于鼠标路径显示和存储的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029244 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved