如何获得windows mobile 6.5.3下方菜单栏的高度

时间:2010-06-20 13:24:41

标签: windows-mobile menubar

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

对于以前版本的windows mobile,上下条的高度是标准的,QVGA设备为26像素,VGA设备为52像素,但在windows mobile 6.5.3中并非如此身高18岁,上帝唯一知道的就是现在:)

提前感谢您的帮助。

艾曼

2 个答案:

答案 0 :(得分:0)

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

hTBWnd = FindWindow(_T(“HHTaskBar”),NULL)

这可以帮助您了解任务栏。然后你可以使用GetWindowRect来获取任务栏的四个角,并通过从底部减去顶部来计算高度。如果找不到HHTaskBar,托盘可能会工作。

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);
  }
}

答案 1 :(得分:0)

Rectange toolBarRect = GetWindowRect(toolBar.Handle);