關於Mobile的全屏實現的一點心得

2021-05-09 22:43:05 字數 1311 閱讀 6581

在做了幾個專案之後,終於找到了乙個比較好的實現全屏的方法,之前做全屏的時候,在網上找了很多的實現方法,總結了下大致就2種(其他的大同小異):

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 = findwindow( _t("ms_sipbutton"), 0 );

if ( pwndsip )

pwndsip = findwindow( _t("hhtaskbar"), 0 );

if ( pwndsip )

這2種方法其實都可以實現視窗的全屏,但是在某些時候或者某些機器上,並不能成功,或者是開始是成功的,但是在某種情況下就跑出來了,而且之後一直就因此不了了,具體的原因我跟了下,因為mobile自己帶了很多系統的功能條,而且類名都是一樣的,所以當時隱藏的可能只是其中的乙個,並沒有全部隱藏,當某些情況觸發的時候就會將另外乙個系統條彈出來,而且很難隱藏。

我找到的方法是,在程式啟動的時候,或者是你需要隱藏的時候呼叫系統的enumwindows函式去列舉所有的系統視窗,然後用getclassname(hwnd,szclassname,256);函式去根據視窗的名字去獲取這個視窗的類名,然後根據你需要隱藏的類名去隱藏視窗,例如:

if (!wcscmp(szclassname,l"hhtaskbar"))

if (!wcscmp(szclassname,l"menu_worker"))

if (!wcscmp(szclassname,l"ms_sipbutton"))

這樣就可以保證所有的系統條都被隱藏了。

當然還有一點很重要,這樣的函式執行了以後,一定要在你退出你的程式的時候寫個逆隱藏函式,將之前隱藏的都顯示出來(只需要將showwindow(hwnd, sw_hide);改為showwindow(hwnd, sw_show);),否則,退出你的程式之後可是什麼都看不到了哦

ms_sipbutton:下方中間的拼字那個視窗

menu_worker:下方的帶顏色的長條,不算中間的拼字

hhtaskbar:上方的任務條

全屏和退出全屏功能的實現

1.判斷狀態 瀏覽器字首 const prefixname,setprefixname usestate 瀏覽器是否支援全屏 預設支援 const isfullscreendata,setisfullscreendata usestate true 是否全屏 const isfullscreen,s...

關於mobile中相機的處理方法

我想實現的功能是 呼叫相機 所有模式引數都可以使用者自行設定 拍照或者攝像之後 實時監控到新增的檔名 交由上傳模組上傳 在這個帖子中 大家給出的方案都是用 shcameracapture 或者是更加底層的 directshow 但是這個解決不了我的問題 1.模式選擇問題 只能是拍照或者是攝像 這個是...

Android實現全屏顯示的方法

我們都知道在android中某些功能的實現往往有兩種方法 一種是在xml檔案中設定相應屬性,另一種是用 實現。同樣android實現全屏顯示也可以通過這兩種方法實現 1 在androidmanifest.xml的配置檔案裡面的標籤新增屬性 android theme android style th...