1

有没有办法在 windows mobile 6.5.3 上获得下部菜单栏的高度 - 带有开始菜单的那个?我可以使用不同的方式获取上层菜单栏的高度,例如使用函数 SystemParametersInfo 并将 SPI_GETWORKAREA 作为其 uiAction 参数,或者使用 GetMonitorInfo 函数,但所有这些函数都可以帮助计算上层菜单栏的高度。

在以前版本的 windows mobile 中,上下栏的高度是标准的,QVGA 设备为 26 像素,VGA 设备为 52,但在 windows mobile 6.5.3 中不是这种情况,上栏的高度为18,现在只有上帝知道的低点:)

预先感谢您的任何帮助。

艾曼

4

2 回答 2

0

它实际上被称为下部任务栏。

hTBWnd = FindWindow(_T("HHTaskBar"), NULL)

这使您可以处理任务栏。然后您可以使用GetWindowRect 获取任务栏的四个角,并通过从底部减去顶部来计算高度。如果未找到 HHTaskBar,则 Tray 可能会起作用。

HWND hTBWnd;
RECT windowRect;

hTBWnd = FindWindow(_T("HHTaskBar"), NULL);
if (hTBWnd != NULL) 
{
  GetWindowRect(hwnd, &windowRect);
  CString csLongAsString;
  csLongAsString.Format( _T( "Height: %ld" ), windowRect.bottom - windowRect.top );
  MessageBox(NULL, csLongAsString, _T("HHTaskBar"), MB_OK);
  return(0);
} else
{
  hTBWnd = FindWindow(_T("Tray"), NULL);
  if (hTBWnd != NULL) 
  {
    GetWindowRect(hwnd, &windowRect);
    CString csLongAsString;
    csLongAsString.Format( _T( "Height: %ld %ld" ), windowRect.bottom, windowRect.top );
    MessageBox(NULL, csLongAsString, _T("Tray"), MB_OK);
  } else 
  {
    MessageBox(NULL, _T("Window get failed"), _T("FAILED TO FIND WINDOW"), MB_OK);
    return(0);
  }
}
于 2010-10-14T09:30:57.000 回答
0
Rectange toolBarRect = GetWindowRect(toolBar.Handle);
于 2010-12-03T17:18:54.493 回答