hTaskBarWnd = FindWindow(_T("HHTaskBar"), NULL);
ShowWindow(hTaskBarWnd, SW_HIDE);
還有另一種作法, 也是找到 Taskbar windows, 並將它搬離螢幕範圍, 例如下述將 Taskbar windows 搬至螢幕下方超過螢幕解析度之範圍,
MoveWindow(hTaskBarWnd, rc.left, rc.bottom, rc.right-rc.left, rc.bottom-rc.top, TRUE);
但在 WinCE 環境中, 有些軟體即使將 Taskbar 隱藏了, 但仍會發生並非真正全螢幕顯示情形, 問題大都出在沒有設定螢幕工作範圍, 而形成工作列雖被隱藏, 但程式執行時, 仍無法將工作視窗擴大至 Taskbar 原有之位置, 下述範例說明將 Windows CE 之視窗工作範圍設至全螢幕範圍,
SetRect(&rc, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN));
SystemParametersInfo(SPI_SETWORKAREA, 0, &rc, SPIF_UPDATEINIFILE);
以 TomTom 6 為例, TomTom 6 原本僅適用於 WM5 環境, 有人將它移植至 WinCE 環境中, 但於 WinCE 環境中使用 TomTom 即需將 WinCE 的工作列設定為自動隱藏, 有些人使用隱藏 Taskbar 程式隱藏工作列, 但執行 TomTom 6 於導航畫面回主選單時, 會出現嚴重的程式錯誤並異常結束程式, 其主因為有些隱藏 Taskbar 程式將視窗工作範圍設至全螢幕範圍, 但目前 TomTom 6 並無法於 WinCE 中以全螢幕範圍工作.
話說山不轉路轉, 路不轉人轉, 如果覺得設定工作列自動隱藏, 螢幕底部會有礙眼的 5 pixels gray bar, 二種方法可以解決,
1. 使用上述兩種隱藏工作列的方式, 可除去礙眼的 5 pixels gray bar, 但前提是工作列需設定自動隱藏, 此時 TomTom 螢幕工作範圍為 (螢幕底部 - 5 pixels) 範圍, 如 480 x 272 解析度, 便是 480 x 267.
2. 除了使用上述兩種隱藏工作列的方式外, 也可設定視窗工作範圍至 (螢幕底部 - 1 pixel), 這樣一來, TomTom 便何趨近全螢幕顯示, 如 480 x 272 解析度, 便是 480 x 271, 如下述 C++ 語法
SetRect(&rc, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN)-1);
SystemParametersInfo(SPI_SETWORKAREA, 0, &rc, SPIF_UPDATEINIFILE);
這個方法唯一的缺點, 就是導航道路畫面和導航指示畫面間的空隙加大, 會有約 4 pixels 的空間出現.
<圖一>自動隱藏 Taskbar 時, 螢幕下方會有 5 pixels 的 gray bar
<圖二>隱藏 Taskbar 並將工作區加大, 螢幕下方 gray bar 不見了
透過同樣的程式技巧, 也可運用於某些無法全螢幕作業的軟體,
<圖三>螢幕上方有 explorer 的命令列
<圖四>隱藏螢幕上方的 explorer 的命令列, 達成全螢幕效果
View My Stats
4 則留言:
请问能否把Garmin去上面taskbar的程序贴出来啊
bow
Hi Notfaker,
我現在也有 gray bar 與畫面會不更新的困擾. 我是用 MIO H610 解鎖的(wince 4.2)
有沒有什麼方法解? 換哪些DLL?
謝謝啦!
回覆: Haily 提到...
目前看到的原本就是非完整移植的純測試欣賞版, 會有一些問題就不足為奇. 很多人在談如何修正這些問題, 那裏在談就不是這個 Blog 所討論的主軸了.
張貼留言