考虑以下代码:
LPRECT lpRect;
GetWindowRect(hwnd, lpRect);
我不知道如何从lpRect
中获取信息,请给予建议。
你写的是错误的。Windows API使用了一个丑陋的变量和类型命名约定。LPRECT
代表“指向矩形的长指针”,在通常的架构中只是一个RECT*
。你所写的是一个未初始化的指针变量,指向某个任意位置(如果你不幸的话,可能会导致修改时崩溃程序)。
这才是你实际需要的:
RECT rect;
GetWindowRect(hwnd, &rect);
RECT本身就是一个结构体
typedef struct _RECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
lpRect->left
lpRect->right
lpRect->top
lpRect->bottom
更多信息请查看:http://msdn.microsoft.com/zh-cn/library/windows/desktop/dd162897(v=vs.85).aspx
GetWindowRect
是在寻找麻烦。 - Alexey Ivanov或者您可以直接在CWnd对话框中输入以下内容:
CRect rect;
this->GetWindowRect( &rect );
CRect
жҲ–иҖ…жҳҜthis->GetWindowRect
зҡ„йўқеӨ–дёҠдёӢж–ҮдҝЎжҒҜгҖӮжҲ‘зҢңжөӢиҝҷдёҺMFCжңүе…іпјҢдҪҶе®ғ并没жңүеӣһзӯ”еҺҹй—®йўҳгҖӮ - Alexey Ivanov
malloc()
传递了错误的大小(2)它与现有答案冲突(3)问题中的代码应该只被编辑以改进转发,而不是修复错误,因为错误是问题的重要部分。即使问题包含与所问问题无关的代码或问题,清理/缩减到MCVE应该只在答案中完成。 - Ben Voigt