1

其实我发现这里也有同样的需求帖子。但是我还是发现了一些问题,所以我必须在这里发布另一个问题。

如果我使用snipaste来捕获工具栏。我可以知道真正的标题栏是28这样 的在此处输入图像描述

但是,如果我像这样使用该帖子中的方法:

#include<iostream>
#include <wtypes.h>
using namespace std;

int main() {
    cout << GetSystemMetrics(SM_CYCAPTION) << endl;
    return 0;
}

我会得到23的。有什么我错过的吗?或者28实际上包含除标题栏之外的其他部分?我该怎么做才能用 c++ 找到标题栏的真实高度。

4

1 回答 1

4

完全是你问的,但我经常发现这是一个有用的指标:

int FindExtraWindowHeight(HWND h)
{
  RECT w, c;
  GetWindowRect(h, &w);
  GetClientRect(h, &c);
  return (w.bottom - w.top) - (c.bottom - c.top);
}

窗口和客户区的区别。所以这会给你标题栏高度+边框厚度。

于 2018-12-20T10:13:47.947 回答