显示器坐标的问题

苏克贝塔03 2010-07-22 08:29:34
假如我想画一条线,它是随窗口的变化而变化的,而不是固定的长度。
想问一下怎么做啊?
...全文
90 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingpacer 2010-07-22
先确定直线段的起点和终点的坐标:获取变化后的框架窗口的客户区坐标,如果直线段的起点和终点离框架窗口的距离不变的话,则起点和终点的坐标对应x坐标很容易确定;起点和终点的坐标对应y坐标按比例缩放就可以得到了。
回复
苏克贝塔03 2010-07-22
[Quote=引用 9 楼 wangyt 的回复:]
在OnDraw中也可以画。
[/Quote]
先把点存起来,转换以下才能画 啊,,是在OnDraw()里啊
为什么push()不行呢?
回复
一名程序员 2010-07-22
在OnDraw中也可以画。
回复
苏克贝塔03 2010-07-22
vArr.push_back(CPoint(1,3));//这里不对啊?
那这样为什么不对啊?
谢谢啊
回复
InitialJ 2010-07-22
RECT r;
GetClientRect( &r );
vector<CPoint> vArr();
vArr.push_back(CPoint(r.left,r.right));//
回复
苏克贝塔03 2010-07-22
大家帮我看看这个:
vector<CPoint> vArr();
vArr.push_back(CPoint(1,3));//这里不对啊?
我应该怎样添加数据?
回复
苏克贝塔03 2010-07-22
画一条直线还这么难啊

晕。。
回复
Eleven 2010-07-22
既然你画的是直线,那么肯定是知道2个点的坐标,比较两个点的纵坐标(横坐标与此类似),如果不等,就以该直线作为一个矩形的对角线,在WM_SIZE消息的消息响应函数中拉伸或者压缩矩形,算出矩形的区域,然后连接矩形中的两个点。这个应该会吧,如果相当,更简单,就说明这条直线和水平线平行,在WM_SIZE消息响应函数中增加或者减少其中一个点的横坐标,然后MoveTo,LineTo
回复
接1楼
RECT r;
GetClientRect( &r );

r就是客户区的大小。
回复
ls2141 2010-07-22
获取窗口onsize信息 然后重绘
回复
黑泡泡选手 2010-07-22
这不是缩放窗口麽?获得客户区大小,然后按比例缩放!
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

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