如何使用GetWindowRect

时间:2013-08-17 18:00:54

标签: c++ windows winapi

请考虑以下代码:

LPRECT lpRect;
GetWindowRect(hwnd, lpRect);

我不知道如何从lpRect获取信息;请指教。

3 个答案:

答案 0 :(得分:19)

你写的是错的。 Windows API使用可怕的变量和类型命名约定。 LPRECT表示“指向Rect的长指针”,在您通常的架构上只有RECT*。你写的是一些未初始化的指针变量,指向某个任意位置(如果你不幸的话,修改后的程序会使你的程序崩溃)。

这是您实际需要的:

RECT rect;
GetWindowRect(hwnd, &rect);

RECT本身就是一个结构

typedef struct _RECT {
  LONG left;
  LONG top;
  LONG right;
  LONG bottom;
} RECT;

答案 1 :(得分:3)

您可以获取窗口的坐标:

lpRect->left
lpRect->right
lpRect->top
lpRect->bottom

此处提供更多信息:http://msdn.microsoft.com/en-us/library/windows/desktop/dd162897(v=vs.85).aspx

答案 2 :(得分:0)

或者您也可以在CWnd对话框中输入以下内容:

CRect rect;
this->GetWindowRect( &rect );