您的位置:首页 > 其它

Win7双击任务栏图标导致窗口还原的问题

2011-08-03 15:02 183 查看
技术调查:Win7双击任务栏中高Cpu负荷运行的进程的图标,导致激活此进程的窗体还原事件SC_RESTORE。

解决方案:

我的需求要求主界面始终最大化显示,在主框架接收到SC_RESTORE消息时ShowWindow(SW_MAXIMIZE) 。

void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
// win7 禁止窗体框架非客户区鼠标拖动
switch (nID)
{
case SC_RESTORE:
// CFrameWnd::OnSysCommand(SC_MAXIMIZE, lParam);
ShowWindow(SW_MAXIMIZE);
break;
case SC_MOVE:
case 0xF012:
return;
default:
CFrameWnd::OnSysCommand(nID, lParam);
}
}

void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
//if (SIZE_RESTORED == nType)
//{
// ShowWindow(SW_MAXIMIZE);
// //this->MoveWindow(0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN));
// //return;
// //CFrameWnd::OnSize(SIZE_MAXIMIZED, cx, cy);
//}
//else
CFrameWnd::OnSize(nType, cx, cy);

// 解决浮动窗口移动中,主框架最小化导致的浮动窗口定位错误。
CView* pView = GetActiveView();
if (pView && SIZE_MAXIMIZED == nType)
{
//RecalcLayout();
::SendMessageA(pView->m_hWnd, WM_SIZE, cx, cy);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: