首 页 | 新 闻 | Symbian | Android| Windows Mobile | J2ME | 下载中心 | 游戏策划招聘与求职 | 购书指南 | 视频教程
您现在的位置: 开发视界 >> Windows Mobile >> Windows Mobile 开发 >> 正文
在windows mobile 5.0下实现全屏
作者:佚名    文章来源:转载    更新时间:2007-10-11 9:09:15
最近我做的是camera应用程序,在程序启动后,需要实现全屏化的效果,在网上和MSDN中找了一下,给出了以下的代码:

     DWORD dwState = ( SHFS_HIDETASKBAR | SHFS_HIDESTARTICON | SHFS_HIDESIPBUTTON );
     SHFullScreen( m_hWnd, dwState );

     CRect rc;
     SetRect( &rc, 0, 0, GetSystemMetrics( SM_CXSCREEN ),
         GetSystemMetrics( SM_CYSCREEN ) );
    SetWindowPos( &wndTopMost, 0, 0, rc.Width(), rc.Height(), SWP_SHOWWINDOW );

在测试时发现,这段代码并不能完全的实现全屏化效果,在屏幕底部的输入法栏总是无法消除。通过spy观察了一下,发现些栏是类型为menu_worker的窗口,因为在屏幕中,所有的元素都是一个窗口,于时想到通过隐藏该窗口的办法实现真正的全屏化,在退出程序时,重新显示此窗口。

CWnd* pWndSIP = FindWindow( _T("menu_worker"), 0 );
    if ( pWndSIP )
    {
        // pWndSIP->SetWindowPos(&wndBottom , 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE);
        pWndSIP->ShowWindow(SW_HIDE);
    }

需要注意的是,在windows mobile 5.0中,不止一个类型为menu_worker的窗口,所以需要使用EnumWindows方法,找到每一个窗口,然后隐藏。在退出程序时,重新恢复所有的窗口
相关文章:
没有相关文章
 

站点地图 | 加入收藏 | 联系站长 | 广告服务 |
QQ:280529124  Tel:0592-8271361 辽ICP备05021703号