Вы используете MFC?
Проблема в том, что состояние SIP для каждого диалога, а не для приложения. Поэтому вам нужно показать / скрыть его внутри каждого диалога независимо.
void CAaa::OnActivate( UINT nState, CWnd* pWndOther, BOOL bMinimized )
{
if(nState == WA_ACTIVE || nState == WA_CLICKACTIVE)
{
SHINITDLGINFO shidi;
shidi.dwMask = SHIDIM_FLAGS;
shidi.dwFlags = SHIDIF_FULLSCREENNOMENUBAR|SHIDIF_SIPDOWN | SHFS_HIDETASKBAR;
shidi.hDlg = m_hWnd;
SHInitDialog(&shidi);
SHFullScreen(m_hWnd, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON |SHFS_HIDESTARTICON);
}
}
И вы должны удалить все клавиши полноэкранного режима или панели задач, если они не нужны :)
И еще одна вещь для использования:
SHSipPreference(m_hWnd,SIP_UP); // SIP_DOWN
Или даже:
HWND hwndCB = ::FindWindow(_T("SipWndClass"),_T(""));
::ShowWindow( hwndCB, SW_SHOW);
hwndCB = ::FindWindow(_T("MS_SIPBUTTON"),NULL);
::ShowWindow( hwndCB, SW_SHOW);
Но последнее может быть не таким стандартным :) Все же это работает.
Попробуйте их.