WM6 5中隱藏和顯示工作列 命令欄及輸入面板

2021-06-02 03:26:35 字數 1174 閱讀 2229

1、隱藏

// 隱藏命令欄,命令欄是螢幕最下邊的一條

hwnd hwnd = shfindmenubar(m_hwnd);

::commandbar_show(hwnd, false); 

如果對話方塊不在最前面,那麼shfullscreen()函式會失敗

setforegroundwindow();

隱藏工作列,工作列是螢幕最上邊的一條

shfullscreen(m_hwnd, shfs_hidetaskbar | shfs_hidesipbutton|shfs_hidestarticon);  

resize the window over the taskbar area. 

crect rcscreen;

rcscreen.setrect( 0, 

0, 

getsystemmetrics( sm_cxscreen ), 

getsystemmetrics( sm_cyscreen ));

movewindow(&rcscreen, true);

隱藏輸入面板 

sipinfo si; 

memset(&si, 0, sizeof(sipinfo)); 

si.cbsize = sizeof(sipinfo); 

shsipinfo(spi_getsipinfo, 0, &si, 0); 

if (si.fdwflags & sipf_on) 

2、顯示

在很多時候,我們僅需要隱藏工作列,而對下方的輸入法欄並不需要隱藏,如手機qq的做法.但是在這個時候,彈出輸入法軟鍵盤的時候,螢幕上視窗將會自動向下收縮並露出上方被隱藏工作列的區域.解決方法是在主視窗裡響應 wm_wininichange 訊息即可,不需要在裡面新增自定義**,如下:

// 按動輸入法時不自動彈出工作列

void cmainframe::onwininichange(lpctstr lpszsection)

//顯示輸入法圖示

shfullscreen(m_hwnd, shfs_showsipbutton);

// 顯示輸入法欄

cwnd* pwndsip = findwindow( _t("menu_worker"), null );

if ( pwndsip )

WM隱藏 顯示工作列

如下 using system.runtime.interopservices const uint shfs showtaskbar 0x0001 const uint shfs hidetaskbar 0x0002 const uint shfs showsipbutton 0x0004 con...

wince 隱藏 顯示工作列

有時候需要將工作列隱藏,封裝了乙個類。在視窗load的時候,先呼叫hide 視窗大小設定成螢幕大小就可以了。將windowstate設定成max不起作用,必須將視窗大小設定成螢幕大小 using system using system.runtime.interopservices namespac...

wince 隱藏 顯示工作列

有時候需要將工作列隱藏,封裝了乙個類。在視窗load的時候,先呼叫hide 視窗大小設定成螢幕大小就可以了。將windowstate設定成max不起作用,必須將視窗大小設定成螢幕大小 using system using system.runtime.interopservices namespac...