回 帖 发 新 帖 刷新版面

主题:强问,屏幕坐标如何转换到实际坐标

强问,屏幕坐标如何转换到实际坐标
谁知道
告诉一声,很感激

回复列表 (共8个回复)

沙发

没有人知道吗

板凳

ScreenToClient

3 楼

christ115
能不能告诉我具体怎么写
把这句话放在什么地方
谢谢你了

4 楼

假设你已经获得屏幕坐标TPoint ptScreen;
实际坐标为参考坐标,必须有个参照系,假设为控件Form1(只要从TControl继承的都行)。则相对于Form1的坐标为TPoint ptForm = Form1->ScreenToClient(ptScreen);

5 楼

我还是不太明白,能不能再教教我。
的为,请问如何改:
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------



void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
Label7->Caption ="("+IntToStr(X)+","+IntToStr(Y)+")";
    Label8->Caption ="你正在移动鼠标";        
}
//---------------------------------------------------------------------------

6 楼

Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
这里的X和Y就是相对Image1的坐标,要变成Form1的坐标吗?
X + Image1->Left
Y + Image1->Top即可

7 楼

实际坐标是指地理坐标吗?我在这方面有经验,但是Delphi代码,而且相当复杂

8 楼

不好意思,忘了说了
  不是这样的问题
  我的问题是,这个程序显示纵坐标(Y)是倒立的
  也就是顶部为0,而坐标原点在左上角
  我想把原点放到左下角,就是Y零点方向在左下。改如何办??
  谢谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册