9

考虑以下代码:

LPRECT lpRect;
GetWindowRect(hwnd, lpRect);

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

4

3 回答 3

26

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

这是您实际需要的:

RECT rect;
GetWindowRect(hwnd, &rect);

RECT 本身就是一个结构

typedef struct _RECT {
  LONG left;
  LONG top;
  LONG right;
  LONG bottom;
} RECT;
于 2013-08-17T18:05:45.290 回答
3

您可以获得窗口的坐标:

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

更多信息在这里:http: //msdn.microsoft.com/en-us/library/windows/desktop/dd162897 (v=vs.85).aspx

于 2013-08-17T18:04:14.720 回答
0

或者你可以在你的 CWnd 对话框中输入这个:

CRect rect;
this->GetWindowRect( &rect );
于 2018-12-25T18:22:39.663 回答