2010-06-20 36 views
1

是否有任何可能的方法來獲得windows mobile 6.5.3中下層菜單欄的高度 - 帶有開始菜單的高度 - ?我可以使用不同的方式獲得上層菜單欄的高度,例如使用函數SystemParametersInfo和發送SPI_GETWORKAREA作爲其uiAction參數,或使用GetMonitorInfo函數,但所有這些函數都可以幫助計算上層菜單欄的高度。如何獲取windows mobile 6.5.3的下層菜單欄的高度

對於以前版本的windows mobile,上下欄的高度爲標準,QVGA設備爲26像素,VGA設備爲52像素,但在windows mobile 6.5.3中不是這種情況,有一個18的高度,只有上帝知道現在較低:)

在此先感謝您的任何幫助。

艾曼

回答

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

其實我想HHTaskBar並沒有工作,但我會努力托盤,看看它是否正常工作的問題,謝謝:) – Ayman 2010-10-27 14:27:08

0
Rectange toolBarRect = GetWindowRect(toolBar.Handle); 
相關問題