Я создал нижнюю строку состояния в своем окне MDI в моем файле MAINFRAME.cpp
в обработчике OnCreate
следующим образом:
static UINT indicators[] =
{
ID_SEPARATOR
};
int MainFrm::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE("Failed to create status bar\n");
return -1; // fail to create
}
}
Функция CStatusBar
Create выглядит следующим образом:
virtual BOOL Create(CWnd* pParentWnd,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR)
Я пытаюсь найти координаты этой строки состояния, то есть ее положение x
, но у меня возникают некоторые трудности при этом.Согласно Spy ++ на мониторе с разрешением 1920x1080, позиция строки состояния x.top = 1055
.
Я пытался, но получил x.top = 66
:
RECT rect;
m_wndStatusBar.GetWindowRect(&rect);
int x_top_pos = rect.top;
Я тоже пытался, но получил x_top_pos = 2
:
m_wndStatusBar.GetItemRect(0, &rect);
Это только две функции, которые возвращают объект RECT
, но обе возвращают неправильные значения.
Что я делаю не так?