MFC隐藏显示任务栏,菜单栏及输入法面板
2009-06-11 09:44
1181 查看
1、隐藏
// 隐藏命令栏
HWND hWnd = SHFindMenuBar(m_hWnd);
::CommandBar_Show(hWnd, FALSE);
// 隐藏任务栏
SHFullScreen(m_hWnd, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON|SHFS_HIDESTARTICON);
//把窗体设为前台
SetForegroundWindow();
//隐藏后把窗体设置为全屏
CRect rcScreen;
rcScreen.SetRect( 0, 0, GetSystemMetrics( SM_CXSCREEN ),
GetSystemMetrics( SM_CYSCREEN ));
MoveWindow(&rcScreen, TRUE);
//隐藏输入法面板
BOOL fRes = FALSE;
SIPINFO si;
memset( &si, 0, sizeof( si ) );
si.cbSize = sizeof( si );
if( SHSipInfo( SPI_GETSIPINFO, 0, &si, 0 ) )
{
si.fdwFlags &= ~SIPF_ON;
fRes = SHSipInfo( SPI_SETSIPINFO, 0, &si, 0 );
}
或者
SIPINFO si;
memset(&si, 0, sizeof(SIPINFO));
si.cbSize = sizeof(SIPINFO);
SHSipInfo(SPI_GETSIPINFO, 0, &si, 0);
if (si.fdwFlags & SIPF_ON)
{
si.cbSize = sizeof(SIPINFO);
si.fdwFlags = SIPF_OFF;
SHSipInfo(SPI_SETSIPINFO, 0, &si, 0);
}
2、显示
// 显示任务栏和输入法图标和Start图标
SHFullScreen(m_hWnd, SHFS_SHOWTASKBAR | SHFS_SHOWSTARTICON | SHFS_SHOWSIPBUTTON);
//只显示任务栏
HWND hWndTaskBar = ::FindWindow(TEXT("HHTaskBar"), NULL);
if (hWndTaskBar != NULL)
{
::ShowWindow(hWndTaskBar, SW_SHOW);
}
//显示命令栏(此时只显示了输入法图标,因为窗体的高度已经变化,可以通过重新设置窗体大小把该命令栏显示在窗口中)
HWND hWnd = SHFindMenuBar(m_hWnd);
::CommandBar_Show(hWnd, TRUE);
//打开输入法面板
BOOL fRes = FALSE;
SIPINFO si;
memset( &si, 0, sizeof( si ) );
si.cbSize = sizeof( si );
if( SHSipInfo( SPI_GETSIPINFO, 0, &si, 0 ) )
{
si.rcSipRect.top -= 20;
si.rcSipRect.bottom -= 20;
si.rcSipRect.left = 20;
si.rcSipRect.right = 200;
si.fdwFlags &= ~SIPF_LOCKED;
si.fdwFlags &= ~SIPF_DOCKED;
si.fdwFlags |= SIPF_ON;
fRes = SHSipInfo( SPI_SETSIPINFO, 0, &si, 0 );
}
// 隐藏命令栏
HWND hWnd = SHFindMenuBar(m_hWnd);
::CommandBar_Show(hWnd, FALSE);
// 隐藏任务栏
SHFullScreen(m_hWnd, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON|SHFS_HIDESTARTICON);
//把窗体设为前台
SetForegroundWindow();
//隐藏后把窗体设置为全屏
CRect rcScreen;
rcScreen.SetRect( 0, 0, GetSystemMetrics( SM_CXSCREEN ),
GetSystemMetrics( SM_CYSCREEN ));
MoveWindow(&rcScreen, TRUE);
//隐藏输入法面板
BOOL fRes = FALSE;
SIPINFO si;
memset( &si, 0, sizeof( si ) );
si.cbSize = sizeof( si );
if( SHSipInfo( SPI_GETSIPINFO, 0, &si, 0 ) )
{
si.fdwFlags &= ~SIPF_ON;
fRes = SHSipInfo( SPI_SETSIPINFO, 0, &si, 0 );
}
或者
SIPINFO si;
memset(&si, 0, sizeof(SIPINFO));
si.cbSize = sizeof(SIPINFO);
SHSipInfo(SPI_GETSIPINFO, 0, &si, 0);
if (si.fdwFlags & SIPF_ON)
{
si.cbSize = sizeof(SIPINFO);
si.fdwFlags = SIPF_OFF;
SHSipInfo(SPI_SETSIPINFO, 0, &si, 0);
}
2、显示
// 显示任务栏和输入法图标和Start图标
SHFullScreen(m_hWnd, SHFS_SHOWTASKBAR | SHFS_SHOWSTARTICON | SHFS_SHOWSIPBUTTON);
//只显示任务栏
HWND hWndTaskBar = ::FindWindow(TEXT("HHTaskBar"), NULL);
if (hWndTaskBar != NULL)
{
::ShowWindow(hWndTaskBar, SW_SHOW);
}
//显示命令栏(此时只显示了输入法图标,因为窗体的高度已经变化,可以通过重新设置窗体大小把该命令栏显示在窗口中)
HWND hWnd = SHFindMenuBar(m_hWnd);
::CommandBar_Show(hWnd, TRUE);
//打开输入法面板
BOOL fRes = FALSE;
SIPINFO si;
memset( &si, 0, sizeof( si ) );
si.cbSize = sizeof( si );
if( SHSipInfo( SPI_GETSIPINFO, 0, &si, 0 ) )
{
si.rcSipRect.top -= 20;
si.rcSipRect.bottom -= 20;
si.rcSipRect.left = 20;
si.rcSipRect.right = 200;
si.fdwFlags &= ~SIPF_LOCKED;
si.fdwFlags &= ~SIPF_DOCKED;
si.fdwFlags |= SIPF_ON;
fRes = SHSipInfo( SPI_SETSIPINFO, 0, &si, 0 );
}
相关文章推荐
- MFC隐藏显示任务栏,菜单栏及输入法面板 收藏
- WM6.5中隐藏和显示任务栏、命令栏及输入面板
- MFC隐藏和显示任务栏与标题栏
- 2009-12-05 14:47 wince 显示/隐藏输入法面板
- MFC对话框程序启动的时候直接隐藏、在任务栏不显示图标
- MFC 点击任务栏图标隐藏和显示窗口
- 没有菜单栏时不显示(隐藏)输入法按钮
- windows/mfc实现窗口隐藏同时 在任务栏上无图标显示功能
- MFC 为程序制作一个系统托盘图标、显示隐藏任务栏图标
- mfc的任务栏的隐藏和显示
- MFC之隐藏窗口在任务栏上显示
- WM6.5中隐藏和显示任务栏、命令栏及输入面板
- MFC中隐藏、显示菜单栏
- 安卓输入法的显示和隐藏
- 隐藏,显示任务栏,桌面 C++代码
- Android输入法的显示或隐藏
- 修复升级python版本之后ibus输入法不显示控制面板和候选框的问题
- 多文档的MFC中,如何去掉菜单栏,父窗体,子窗体最大化显示,关闭子窗体是去掉保存提示
- android如何调用显示和隐藏系统默认的输入法
- gvim 菜单栏与工具栏隐藏与显示动态切换