关于全屏显示的有关问题

关于全屏显示的问题。
我用的是 //FullScreen
DWORD dwState = ( SHFS_HIDETASKBAR | SHFS_HIDESTARTICON | SHFS_HIDESIPBUTTON );
SHFullScreen( m_hWnd, dwState );
CRect rc;
SetRect( &rc, 0, 0, GetSystemMetrics( SM_CXSCREEN ),
GetSystemMetrics( SM_CYSCREEN ) );
SetWindowPos( &wndTopMost, 0, 0, rc.Width(), rc.Height(), SWP_SHOWWINDOW );

CWnd* pWndSIP = FindWindow( _T("menu_worker"), 0 );
if ( pWndSIP )
{
pWndSIP->ShowWindow(SW_HIDE);
}
来实现,全屏的,MFC,代码段在MainFrm.cpp OnCreate()里面。同时我还禁止了所有按键
问题是:程序打开全屏后,滑盖,改变了屏幕方向,这时,窗口上方的导航栏出现了,鼠标点击×程序就关闭了,请问如何避免这种现象,在屏幕方向改变的时候,仍然保持全屏

------解决方案--------------------
你用的不是MFC吗?给对话框添加Messages,里面有WM_SIZE消息。添加后会自动生成该消息函数。
------解决方案--------------------
可以把导航栏关闭,你的程序结束再打开。
public static void ShowTaskBar(IntPtr hWnd)
{
EnableWindow(hWnd, true); 
ShowWindow(hWnd, SW_SHOW);
}

public static IntPtr HideTaskbar()
{

IntPtr hWnd = FindWindow("HHTaskBar", "");
ShowWindow(hWnd, SW_HIDE);
EnableWindow(hWnd, false);

return hWnd;
}
我这是c#代码,转为vc对你来说不难.导航栏的title是HHTaskBar,你找到这个窗口,把它隐藏就行
------解决方案--------------------
HWND hWnd = ::FindWindow(L"HHTaskBar", NULL); 
::ShowWindow(hWnd, SW_HIDE); 
::EnableWindow(hWnd, FALSE);