导航
  • 主页
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

请教OnLButtonDown后,本进程就关不了了。

robert6757 2009-07-29 11:17:03

void CMeasureView::OnLButtonDown(UINT nFlags, CPoint point)
{


// TODO: Add your message handler code here and/or call default
CFormView::OnLButtonDown(nFlags, point);

if(MeasuringChoose==true&&point.x>0&&point.y>0&&point.y<m_Height&&point.x<m_Width)
{
switch(MeasureType)
{
case 2:
{
ChoosePoint1x=point.x;
ChoosePoint1y=576-point.y;
CPen *oldPen ;
CPen solidPen(PS_SOLID, 0,RGB(0,255,0));
CPen pianPen(PS_SOLID, 0,RGB(255,0,0));
CPen HengPen(PS_SOLID, 0,RGB(60,60,160));
CClientDC Dc(this);

CWnd* wnd;
wnd=GetDlgItem(IDC_STATIC_DISPLAY);
CRect rect;
wnd->GetClientRect(rect);

CDC *dc=NULL;
dc=wnd->GetDC();
oldPen = dc->SelectObject (&pianPen);

dc->MoveTo(point.x,point.y-3);
dc->LineTo(point.x,point.y+3);
dc->MoveTo(point.x+3,point.y);
dc->LineTo(point.x-3,point.y);

MeasuringChoose=false;
MeasureType=0;
ReleaseDC(dc);
break;
}
default:
{
break;
}
}

}

}

谢谢各位!
...全文
116 点赞 收藏 23
写回复
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
robert6757 2009-08-01
如果是内存泄露,会不会引起进程关不掉的现象?
回复
xiaohuizhijia 2009-07-29
楼主犯的是很低级的错误,加入一句话即可:
default:
{
MeasuringChoose=false; //就是加这一句
break;
}
回复
liumang9527 2009-07-29
在关闭函数前加上:

MeasuringChoose=false;
Sleep(2000);

回复
liumang9527 2009-07-29
在函数最前加上:


MeasuringChoose=true;
回复
dronly 2009-07-29
搞不清楚楼主的问题在哪里

强制结束不是办法,最后还是可能出更加难搞的问题

线程还是需要自然退出最好的。
回复
副组长 2009-07-29
[Quote=引用 12 楼 robert6757 的回复:]
有什么强制关闭本进程的手段么~?
[/Quote]

有是有,但是没人那么干。
回复
副组长 2009-07-29
你这程序概念不是很清楚,已经获得了CClientDC不用,貌似又取来一个控件窗口DC。你是想往哪儿画线呢?
另外程序还使用了缺省的OnLButtonDown()。
重新建一个Project,一步一步慢慢来。

回复
robert6757 2009-07-29
有什么强制关闭本进程的手段么~?
回复
yueyucanyang 2009-07-29
你在这个函数加上一个返回的指令。return ;试试看。
这个最好单步调试一下,在里边设个断点,单击一下鼠标,看看是不是在里面进行了死循环。还是外部循环调用了。
回复
占座学习。
回复
fandh 2009-07-29
是呀,放到调试状态,自己调试一下! 不然,很难找到错误的地方!
回复
eagerle01 2009-07-29
[Quote=引用 7 楼 happyparrot 的回复:]
那是程序其它地方的BUG。再仔细点跟踪一下,看看问题出现的真正地方,否则大家都没办法帮。
[/Quote]
up
回复
快乐鹦鹉 2009-07-29
那是程序其它地方的BUG。再仔细点跟踪一下,看看问题出现的真正地方,否则大家都没办法帮。
回复
robert6757 2009-07-29
注释掉后,依然存在问题。。。看来不是OnLButtonDown的问题了。可是,关闭不了,还有什么地方存在可能?
回复
lygfqy 2009-07-29
注释掉这个函数里的内容,先试试看
回复
robert6757 2009-07-29
程序就是在对图像通过单击的形式,进行标记。
回复
robert6757 2009-07-29
我发现运行程序,什么都不点,只点关闭的叉子,都结束不了。但是,我如果点一下button后,再点关闭,就能正常关闭。
还有一点,我发现在程序上的其他地方点一下( 非button处)然后,就肯定关闭不了进程了。。。
回复
xiaogang_1 2009-07-29
楼主在干嘛啊
回复
雪影 2009-07-29
OnLButtonDown函数内部没有什么问题。
是不是别的地方出什么问题了?
单步调试一下,看看在什么地方卡住了
回复
robert6757 2009-07-29
我拿软件看了程序的线程,都已经正常关闭了。真是快晕了。。。
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……