Answer

专注于Mobile,WinCE
  首页  :: 新随笔  :: 联系 :: 管理

WinCE5.0及Mobile5.0的全屏处理

Posted on 2008-06-27 11:57  answer  阅读(1268)  评论(2编辑  收藏  举报
WINCE5.0及Mobile5.0在EVC4.0及VS2005 C++开发上,全屏的处理有所不同。

EVC4.0中的处理:(WINCE5.0及Mobile5.0处理方式一样)
在程序启动后,调用:
1HWND hTB = ::FindWindow(L"HHTaskBar", NULL);
2::ShowWindow(hTB, SW_HIDE);
可实现全屏。如图:


当然,在程序退出前要找回任务栏:
1HWND hTB = ::FindWindow(L"HHTaskBar", NULL);
2::ShowWindow(hTB, SW_SHOW);

vs2005上的处理:(WINCE5.0及Mobile5.0处理方式不同)
在WINCE5.0上,处理方式可类似于 上面 EVC4.0 的方式;
在Mobile5.0上,上面的方式是无效的,需调用如下:
1 SetForegroundWindow(); //此函数不调用,则SHFullScreen将无效
2
SHFullScreen(m_hWnd, SHFS_HIDESTARTICON 
/**//**//**//*SHFS_HIDETASKBAR | SHFS_HIDESTARTICON | SHFS_HIDESIPBUTTON*/);
3
4 RECT rc;
5 SetRect(&rc, 00, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN));
6 ::MoveWindow(m_hWnd, rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top, TRUE);
7
8 this->m_bFullScreen = false//不执行此句将有不同的效果

如果不执行代码中的第8行,则有如下效果: