
VC++窗口的原点是在左上角的,但是我想把窗口的坐标系变成我们习惯的指教坐标系,应该怎么变啊 10
原点在窗口中心,并且向右为x正方向,向上为y正方向,就是我们平常用的直角坐标系,求程序,会有追加分数的voidCCircleView::OnPrepareDC(CDC*p...
原点在窗口中心,并且向右为x正方向,向上为y正方向,就是我们平常用的直角坐标系,求程序,会有追加分数的
void CCircleView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
CView::OnPrepareDC(pDC, pInfo);
}
麻烦在上面的函数体中填上我要的程序,谢谢 展开
void CCircleView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
CView::OnPrepareDC(pDC, pInfo);
}
麻烦在上面的函数体中填上我要的程序,谢谢 展开
展开全部
写一个函数转换一下就好了,比如说你的坐标系里的一个点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;
}
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;
}
展开全部
得到一个基数就可以了啊.
CRect rect;
GetWindowRect(rect);
int x = rect. Width()/2, y = rect.Height()/2
使用
GetWindowRect(rect);函数将当前窗口的大小放进rect中,然后调出他的高和宽,再除以2,得到的就是他的中心点,你以这个点处理程序,最后再把这个基数加上就OK了
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相加就行了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
基地啊。
了CRect矩形
GetWindowRect(正确);
诠释x =正确的。宽度()/ 2,Y = rect.Height()/ 2
使用 GetWindowRect(正确);功能在当前窗口的大小成矩形,然后将他的高和宽,再除以2,就是他的中心点,这一点您的处理程序,并最终确定此基础
了CRect矩形
GetWindowRect(正确);
诠释x =正确的。宽度()/ 2,Y = rect.Height()/ 2
使用 GetWindowRect(正确);功能在当前窗口的大小成矩形,然后将他的高和宽,再除以2,就是他的中心点,这一点您的处理程序,并最终确定此基础
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
基地啊。
了CRect矩形
GetWindowRect(正确);
诠释x =正确的。宽度()/ 2,Y = rect.Height()/ 2
使用 GetWindowRect(正确);功能在当前窗口的大小成矩形,然后将他的高和宽,再除以2,就是他的中心点,这一点您的处理程序,并最终确定此基础
了CRect矩形
GetWindowRect(正确);
诠释x =正确的。宽度()/ 2,Y = rect.Height()/ 2
使用 GetWindowRect(正确);功能在当前窗口的大小成矩形,然后将他的高和宽,再除以2,就是他的中心点,这一点您的处理程序,并最终确定此基础
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询