gpt4 book ai didi

visual-c++ - MFC 的 GetClientRect 和 MoveWindow 不保留大小?

转载 作者:行者123 更新时间:2023-12-01 09:39:37 34 4
gpt4 key购买 nike

我正在为 Visual Studio 2003 使用 MFC。我有一个 ID 为 IDC_COMMENT_EDIT 的编辑控件。在下面的代码中,在我第一次调用 GetClientRect 之后,我不希望 rc 的值发生变化。

CWnd* pWnd = GetDlgItem(IDC_COMMENT_EDIT);
if (pWnd != NULL)
{
RECT rc;
pWnd->GetClientRect(&rc);
pWnd->MoveWindow(&rc, TRUE);
pWnd->GetClientRect(&rc);
}
正如预期的那样,

rc.toprc.left 一直是 0。然而:
第一次调用 GetClientRect 后,我得到 rc.bottom == 52rc.right == 575
在第二次调用 GetClientRect 后,我得到 rc.bottom == 48rc.right == 571

有人知道发生了什么吗?

最佳答案

您调用 MoveWindow正在调整大小。您需要使用 GetWindowRect而不是 GetClientRect .

client rect 只包含 client area,它是窗口的非窗口元素(例如边框)。

关于visual-c++ - MFC 的 GetClientRect 和 MoveWindow 不保留大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1910469/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com