如何用c ++获得标题栏的真实高度

时间:2017-11-15 10:09:52

标签: c++ winapi getsystemmetrics

实际上我发现here的需求相同。但是我仍然发现了一些问题,所以我必须在这里发布另一个问题。

如果我使用snipaste来捕获工具栏。我可以知道这个真正的标题栏是28 enter image description here

但是如果我在这个帖子中使用这样的方法:

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

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

我将获得23。有没有我错过的东西?或者28实际上包含标题栏以外的其他部分?如果我想用c ++找到标题栏的真实高度。我该怎么做?

1 个答案:

答案 0 :(得分:0)

不是精确地您的要求,但是我经常发现这是一个有用的指标:

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

窗口和工作区之间的区别。因此,这将为您提供标题栏高度+边框厚度。