让Windows Mobile程序实现全屏的方法
2009-07-11 18:25
323 查看
1、 SetForegroundWindow();
SHFullScreen(m_hWnd, SHFS_HIDESIPBUTTON);
SHFullScreen(m_hWnd, SHFS_HIDETASKBAR);
SHFullScreen(m_hWnd, SHFS_HIDESTARTICON);
2、 CWnd* pWndSIP = FindWindow( _T("menu_worker"), 0 );
if ( pWndSIP )
{
pWndSIP->SetWindowPos(&wndBottom , 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE);
pWndSIP->ShowWindow(SW_HIDE);
}
pWndSIP = FindWindow( _T("MS_SIPBUTTON"), 0 );
if ( pWndSIP )
{
pWndSIP->SetWindowPos(&wndBottom , 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE);
pWndSIP->ShowWindow(SW_HIDE);
}
pWndSIP = FindWindow( _T("HHTaskBar"), 0 );
if ( pWndSIP )
{
pWndSIP->SetWindowPos(&wndBottom , 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE);
pWndSIP->ShowWindow(SW_HIDE);
}
这2种方法其实都可以实现窗口的全屏,但是在某些时候或者某些机器上,并不能成功,或者是开始是成功的,但是在某种情况下就跑出来了,而且之后一直就因此不了了,具体的原因我跟了下,因为Mobile自己带了很多系统的功能条,而且类名都是一样的,所以当时隐藏的可能只是其中的一个,并没有全部隐藏,当某些情况触发的时候就会将另外一个系统条弹出来,而且很难隐藏。
我找到的方法是,在程序启动的时候,或者是你需要隐藏的时候调用系统的EnumWindows函数去枚举所有的系统窗口,然后用GetClassName(hwnd,szClassName,256);函数去根据窗口的名字去获取这个窗口的类名,然后根据你需要隐藏的类名去隐藏窗口,例如:
if (!wcscmp(szClassName,L"HHTaskBar"))
{
ShowWindow(hwnd, SW_HIDE);
//return FALSE;
}
if (!wcscmp(szClassName,L"menu_worker"))
{
//EnableWindow(hwnd, FALSE);
ShowWindow(hwnd, SW_HIDE);
//return FALSE;
}
if (!wcscmp(szClassName,L"MS_SIPBUTTON"))
{
//EnableWindow(hwnd, FALSE);
ShowWindow(hwnd, SW_HIDE);
//return FALSE;
}
这样就可以保证所有的系统条都被隐藏了。
当然还有一点很重要,这样的函数执行了以后,一定要在你退出你的程序的时候写个逆隐藏函数,将之前隐藏的都显示出来(只需要将ShowWindow(hwnd, SW_HIDE);改为ShowWindow(hwnd, SW_SHOW);),否则,退出你的程序之后可是什么都看不到了哦
MS_SIPBUTTON:下方中间的拼字那个窗口
menu_worker:下方的带颜色的长条,不算中间的拼字
HHTaskBar:上方的任务条
原文地址:http://www.devdiv.net/thread-10734-1-1.html
SHFullScreen(m_hWnd, SHFS_HIDESIPBUTTON);
SHFullScreen(m_hWnd, SHFS_HIDETASKBAR);
SHFullScreen(m_hWnd, SHFS_HIDESTARTICON);
2、 CWnd* pWndSIP = FindWindow( _T("menu_worker"), 0 );
if ( pWndSIP )
{
pWndSIP->SetWindowPos(&wndBottom , 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE);
pWndSIP->ShowWindow(SW_HIDE);
}
pWndSIP = FindWindow( _T("MS_SIPBUTTON"), 0 );
if ( pWndSIP )
{
pWndSIP->SetWindowPos(&wndBottom , 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE);
pWndSIP->ShowWindow(SW_HIDE);
}
pWndSIP = FindWindow( _T("HHTaskBar"), 0 );
if ( pWndSIP )
{
pWndSIP->SetWindowPos(&wndBottom , 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE);
pWndSIP->ShowWindow(SW_HIDE);
}
这2种方法其实都可以实现窗口的全屏,但是在某些时候或者某些机器上,并不能成功,或者是开始是成功的,但是在某种情况下就跑出来了,而且之后一直就因此不了了,具体的原因我跟了下,因为Mobile自己带了很多系统的功能条,而且类名都是一样的,所以当时隐藏的可能只是其中的一个,并没有全部隐藏,当某些情况触发的时候就会将另外一个系统条弹出来,而且很难隐藏。
我找到的方法是,在程序启动的时候,或者是你需要隐藏的时候调用系统的EnumWindows函数去枚举所有的系统窗口,然后用GetClassName(hwnd,szClassName,256);函数去根据窗口的名字去获取这个窗口的类名,然后根据你需要隐藏的类名去隐藏窗口,例如:
if (!wcscmp(szClassName,L"HHTaskBar"))
{
ShowWindow(hwnd, SW_HIDE);
//return FALSE;
}
if (!wcscmp(szClassName,L"menu_worker"))
{
//EnableWindow(hwnd, FALSE);
ShowWindow(hwnd, SW_HIDE);
//return FALSE;
}
if (!wcscmp(szClassName,L"MS_SIPBUTTON"))
{
//EnableWindow(hwnd, FALSE);
ShowWindow(hwnd, SW_HIDE);
//return FALSE;
}
这样就可以保证所有的系统条都被隐藏了。
当然还有一点很重要,这样的函数执行了以后,一定要在你退出你的程序的时候写个逆隐藏函数,将之前隐藏的都显示出来(只需要将ShowWindow(hwnd, SW_HIDE);改为ShowWindow(hwnd, SW_SHOW);),否则,退出你的程序之后可是什么都看不到了哦
MS_SIPBUTTON:下方中间的拼字那个窗口
menu_worker:下方的带颜色的长条,不算中间的拼字
HHTaskBar:上方的任务条
原文地址:http://www.devdiv.net/thread-10734-1-1.html
相关文章推荐
- MFC单文档(SDI)全屏程序实现方法
- 微信小程序实现横向增长表格的方法
- Android中实现全屏的方法
- aspnet_isapi.dll设置图文方法.net程序实现伪静态
- Python实现监控程序执行时间并将其写入日志的方法
- 微信小程序实现动态设置页面标题的方法【附源码下载】
- VC++实现单文档程序的全屏显示及恢复
- MFC单文档(SDI)全屏程序的实现
- 【转】Android实现全屏显示的方法
- ASP网站程序自动升级实现的方法
- 微信小程序实现多张图片同时上传的方法
- 从 MySQL 导入导出大量数据的程序实现方法
- VC++实现单文档程序的全屏显示及恢复
- 编写Animal接口,接口声明run()方法定义Bird类和Fish类实现Animal接口编写Bird类和Fish类的测试程序,并调用其中的run()方
- 1)编写Animal接口,接口中声明run()方法; 2)定义Bird类和Fish类实现Animal接口; 3)编写Bird类和Fish类的测试程序,并调用其中的run()方法
- VC++实现程序全屏显示
- 编写Animal接口,接口中声明run()方法; 2)定义Bird类和Fish类实现Animal接口; )编写Bird类和Fish类的测试程序,并调用其中的run()方法
- 走进C++程序世界-------类的定义和使用(数据成员和方法成员,析构函数,构造函数,内联实现)
- JavaScript实现为指定对象添加多个事件处理程序的方法
- 编写Animal接口,接口中声明run()方法; 2)定义Bird类和Fish类实现Animal接口; )编写Bird类和Fish类的测试程序,并调用其中的run()方法