您的位置:首页 > 其它

hide the task bar and input panel in Windows Mobile

2009-07-15 17:17 549 查看
when
develop the WM apps sometimes we need to hide the task bar and input panel.

here
some methods are introduced with both C++ and C#.

C++:


by
the function SHFullScreen(), we may hide and show the taskbar, Input Panel
button, or Start menu icon.

and
it's easy to use.

//
hide

void
CHideInputDlg::OnBnClickedButton1()

{

BOOL bRet = false;

RECT rc;

DWORD dwState = (SHFS_HIDETASKBAR |
SHFS_HIDESTARTICON | SHFS_HIDESIPBUTTON);

bRet = SHFullScreen(m_hWnd, dwState);

// Next resize the main window to the size
of the screen.

SetRect(&rc, 0, 0,
GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN));

MoveWindow(rc.left, rc.top, rc.right-rc.left,
rc.bottom-rc.top, TRUE);

}

//
show

void
CHideInputDlg::OnBnClickedButton2()

{

BOOL bRet = false;

RECT rc;

DWORD dwState = (SHFS_SHOWTASKBAR |
SHFS_SHOWSTARTICON | SHFS_SHOWSIPBUTTON);

bRet = SHFullScreen(m_hWnd, dwState);

// Next resize the main window to the size
of the work area.

SystemParametersInfo(SPI_GETWORKAREA, 0,
&rc, FALSE);

MoveWindow(rc.left, rc.top,
rc.right-rc.left, rc.bottom-rc.top, TRUE);

}

SDK
link:

ms-help://MS.VSCC.v80/MS.VSIPCC.v80/MS.WindowsMobile.6/WindowsMobile6SDK/html/8d06e91f-a53f-4a09-add0-d7c25b589a9c.htm

and
there is another more classical way to hide or even disable the task bar: find
it's handle and do what ever we want. But the method doesn't work for input
panel.

//
hide

void
CHideInputDlg::OnBnClickedButton3()

{

HWND pWin = NULL;

pWin =
::FindWindowW(_T("HHTaskBar"), _T(""));

::ShowWindow(pWin, SW_HIDE);

//::EnableWindow(pWin, FALSE);

RECT rc;

SetRect(&rc, 0, 0,
GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN));

MoveWindow(rc.left, rc.top,
rc.right-rc.left, rc.bottom-rc.top, TRUE);

}

//
show

void
CHideInputDlg::OnBnClickedButton4()

{

HWND pWin = NULL;

pWin =
::FindWindowW(_T("HHTaskBar"), _T(""));

::ShowWindow(pWin, SW_SHOW);

RECT rc;

SystemParametersInfo(SPI_GETWORKAREA, 0,
&rc, FALSE);

MoveWindow(rc.left, rc.top,
rc.right-rc.left, rc.bottom-rc.top, TRUE);

}

by
the way notes that both the height of task bar and the input panel are 26.

C#


while
in the C# platform, the work is much easier,

just
change the property of the form:

FormBorderStyle: None;

WindowState: Maximized;

Size:
your
screen size;

by
the setting, the task bar is covered, put the input panel is still there, cause
the panel is associated with the component MainMenu, just delete the component,
we would get a clean screen.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: