社区屏幕区域的问题
rshu 2006-10-26 10:08:51 因为工作需要,把一个工具条放置在屏幕的最上方,其他窗口都只能占有剩下的区域,我的代码是
//去掉taskbar的高度
CWnd* pTaskbarWnd = CWnd::FindWindow("Shell_TrayWnd", "");
if(pTaskbarWnd != NULL)
{
pTaskbarWnd->GetWindowRect(&rectTaskbar);
}
CRect rtNewDesttop;
rtNewDesttop.left = 0;
rtNewDesttop.top = rect.Height();
rtNewDesttop.right = SysWidth;
rtNewDesttop.bottom = SysHeight - rectTaskbar.Height();
SystemParametersInfo(SPI_SETWORKAREA, 0, (LPVOID)&rtNewDesttop, SPIF_SENDCHANGE);
程序退出时恢复原来区域,即其他窗口可以占有整个屏幕区域,但桌面是恢复了,但其他窗口不能自动恢复,发消息通知也不可以,必须要手动恢复。
::SendMessage(HWND_BROADCAST, WM_SIZE, SIZE_MAXHIDE, uLnewRect);
::SendMessage(HWND_BROADCAST, WM_SIZE, SIZE_MAXSHOW, uLnewRect);
请问各位有什么好办法啊,在线急等,谢谢!