VC++窗口的原点是在左上角的,但是我想把窗口的坐标系变成我们习惯的指教坐标系,应该怎么变啊 10

原点在窗口中心,并且向右为x正方向,向上为y正方向,就是我们平常用的直角坐标系,求程序,会有追加分数的voidCCircleView::OnPrepareDC(CDC*p... 原点在窗口中心,并且向右为x正方向,向上为y正方向,就是我们平常用的直角坐标系,求程序,会有追加分数的
void CCircleView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
CView::OnPrepareDC(pDC, pInfo);

}
麻烦在上面的函数体中填上我要的程序,谢谢
展开
 我来答
悲伤0谢幕
2013-01-13 · TA获得超过328个赞
知道小有建树答主
回答量:379
采纳率:0%
帮助的人:258万
展开全部
写一个函数转换一下就好了,比如说你的坐标系里的一个点p(1,2),p=func(p);//p就是从你的坐标系转换成窗口的坐标系,然后进行操作就是了。
POINT func(POINT p)
{
POINT p1;
RECT rec;
::GetWindowRect(窗口句柄,&rec);
p1.x=rec.Width()/2;p1.y=rec.Height()/2;
p1.x+=p.x;p1.y-=p.y;
return p1;
}
slatop
2013-01-12 · TA获得超过1390个赞
知道小有建树答主
回答量:381
采纳率:100%
帮助的人:440万
展开全部
得到一个基数就可以了啊.
CRect rect;
GetWindowRect(rect);
int x = rect. Width()/2, y = rect.Height()/2

使用
GetWindowRect(rect);函数将当前窗口的大小放进rect中,然后调出他的高和宽,再除以2,得到的就是他的中心点,你以这个点处理程序,最后再把这个基数加上就OK了
追问
可是这样知识改变了原点的位置,但是我想把坐标系变成我们常用的指教坐标系,向右为x轴正方向,向上为y轴正方向
追答
有了基数不就可以了?
你就直接用,假设此刻x1为衡向坐标,y1为纵向坐标.起点都为0.
逻辑上直接拿来用,最后交给设备上下文处理的时候,只要把加两个基数转换函数就行了,比如
int WinPointX(int num)
{
return x1+x;
}
当要把坐标交给设备上下文处理时,只要传入这个函数返回值就是真实的坐标,而是使用中用的就是直角坐标.y的函数也差不多,只是要把y1取反后与y相加就行了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
赵大先生
2013-03-11 · TA获得超过3357个赞
知道小有建树答主
回答量:1.2万
采纳率:12%
帮助的人:2402万
展开全部
基地啊。
了CRect矩形

GetWindowRect(正确);

诠释x =正确的。宽度()/ 2,Y = rect.Height()/ 2

使用 GetWindowRect(正确);功能在当前窗口的大小成矩形,然后将他的高和宽,再除以2,就是他的中心点,这一点您的处理程序,并最终确定此基础
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fd65f0d
2013-03-11 · TA获得超过828个赞
知道小有建树答主
回答量:2064
采纳率:20%
帮助的人:534万
展开全部
基地啊。
了CRect矩形

GetWindowRect(正确);

诠释x =正确的。宽度()/ 2,Y = rect.Height()/ 2

使用 GetWindowRect(正确);功能在当前窗口的大小成矩形,然后将他的高和宽,再除以2,就是他的中心点,这一点您的处理程序,并最终确定此基础
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式