| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 343 人关注过本帖
标题:求指教,大侠们!
只看楼主 加入收藏
wtw199186
Rank: 2
等 级:论坛游民
帖 子:55
专家分:78
注 册:2012-9-22
结帖率:57.14%
收藏
已结贴  问题点数:20 回复次数:4 
求指教,大侠们!
我想在MFC中点鼠标左键就会在相应位置画出一个圆,当第二次点鼠标时会画出一个新的圆,第一个圆就消失,可是我不知道怎样才能让前一个圆消失,不知道用什么函数才能达到想要的效果,请哪位大侠指点一下老弟,尽量详细一点,谢谢了!
搜索更多相关主题的帖子: 鼠标 
2012-11-27 13:33
StarFall
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:193
专家分:553
注 册:2012-10-1
收藏
得分:0 
不懂mfc...清屏?

去追寻更高的技术领域。永不停止。
2012-11-27 14:48
lxsjzbd
Rank: 4
来 自:河北省
等 级:业余侠客
帖 子:97
专家分:258
注 册:2012-3-31
收藏
得分:0 
用WM_LBUTTONDOWN消息
用LOWORD(lParam)获取鼠标水平坐标
用HIWORD(lParam)获取鼠标垂直坐标
用InvalidateRect(hwnd,NULL,TRUE)把整个客户区变为无效
用hdc=BeginPaint(hwnd,&ps);获取句柄
画圆,应该可以用鼠标位置确定画在哪吧
EndPaint(hwnd,&ps);关闭句柄
因为BeginPaint这一套会自动把无效区变为有效区,就省个函数
我也是刚学,共同学习吧
2012-11-27 15:41
wtw199186
Rank: 2
等 级:论坛游民
帖 子:55
专家分:78
注 册:2012-9-22
收藏
得分:0 
回复 3楼 lxsjzbd
用InvalidateRect(hwnd,NULL,TRUE)把整个客户区变为无效,是啥意思啊?
void CText_3View::OnLButtonDown(UINT nFlags, CPoint point)
{
   
   
     InvalidateRect(NULL,TRUE);
   
    CClientDC dc(this);   
    dc.SetROP2(R2_NOT);
    dc.Ellipse(point.x,point.y,point.x+10,point.y-10);
    CView::OnLButtonDown(nFlags, point);
}错在哪啊,不懂

2012-11-27 17:10
lxsjzbd
Rank: 4
来 自:河北省
等 级:业余侠客
帖 子:97
专家分:258
注 册:2012-3-31
收藏
得分:20 
你的CClientDC调用的是GetDC该函数不会让窗口有效,
你应该手动:ValidateRect(NULL);
其实我学的是SDI,还没着手mfc,本来想学深入浅出mfc,结果看到一半,实在看不下去了,就开始学windows程序设计了
2012-11-27 17:31
快速回复:求指教,大侠们!
数据加载中...
 
   



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

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