MFC中的窗口角坐标

时间:2014-10-23 21:37:11

标签: c++ visual-studio-2013 mfc

所以,我正在尝试获取我的MFC窗口的CORNERS的x-y坐标......

这是我到目前为止在绘图功能中所拥有的:

// TODO: add draw code for native data here
RECT rect;
GetClientRect(&rect);

// Get window coordinates
int left = rect.left;
int right = rect.right;
int bottom = rect.bottom;
int top = rect.top;

// Print them out
CString l;
l.Format(L"%d", left);
pDC->TextOutW(0, 100, L"Left: " + l, _tcslen(l)+6);
CString r;
r.Format(L"%d", right);
pDC->TextOutW(0, 130, L"Right: " + r, _tcslen(r)+7);
CString b;
b.Format(L"%d", bottom);
pDC->TextOutW(0, 160, L"Bottom: " + b, _tcslen(b)+8);
CString t;
t.Format(L"%d", top);
pDC->TextOutW(0, 190, L"Top: " + t, _tcslen(t)+5);

我是朝着正确的方向前进的吗? 我以为我可以找到这两条线的中点......或者

我还需要做什么?

另外:我如何获得物理显示器角落的x-y坐标?

2 个答案:

答案 0 :(得分:1)

使用GetWindowRect功能代替GetClientRect功能。

您还可以查看ScreenToClientClientToScreen功能。

答案 1 :(得分:0)

向“Left:”添加内容无效。使用Format语句构建要显示的整个字符串,如果需要长度,请使用CString :: GetLength()方法。 (有一个TextOut版本接受没有长度参数的CString。)