首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

窗口最小化到托盘后还原的有关问题

2013-02-03 
窗口最小化到托盘后还原的问题。窗口最小化到托盘后,还原窗口没有显示在最上面,怎样才能让窗口显示在最上面

窗口最小化到托盘后还原的问题。
窗口最小化到托盘后,还原窗口没有显示在最上面,怎样才能让窗口显示在最上面呢?
[解决办法]

bool SetWindowTop(CWnd* pWnd)

{

if(!pWnd)

{

?? return false;

}

if(pWnd->GetExStyle()&WS_EX_TOPMOST)

{

?? return true;

}

else

{

?? int i= pWnd->SetWindowPos(&CWnd::wndTopMost,0,0,0,0,SWP_NOMOVE
[解决办法]
SWP_NOSIZE);

?? if (i==0)

??? return false;

?? else

??? return true;

}

}

//取消窗口置顶

bool CancelWindowTop(CWnd* pWnd)

{

if(pWnd)

{

?? int x=pWnd->SetWindowPos(&CWnd::wndNoTopMost,0,0,0,0,SWP_NOMOVE
[解决办法]
SWP_NOSIZE);

?? if(x==0)

??? return false;

?? else

??? return true;

}

else

{

?? return false;

}

}

[解决办法]
 ::SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,cxScreen,cyScreen,SWP_SHOWWINDOW
[解决办法]
SWP_NOZORDER);
置顶显示
[解决办法]

LRESULT CxxxDlg::OnNotifyIcon(WPARAM wParam, LPARAM lParam)
{
  if (lParam == WM_LBUTTONDOWN)
  {
    if (IsWindowVisible())
    {
      SendMessage(WM_SYSCOMMAND, SC_MINIMIZE, 0);
    }
    else
    {
      ShowWindow(SW_SHOWNA);
      Sleep(3); //不Sleep的话,有时还原时看不到动画效果
      ShowWindow(SW_RESTORE);
    }
  }
  return 0;
}

void CxxxDlg::OnSysCommand(UINT nID, LPARAM lParam) 
{
  CDialog::OnSysCommand(nID, lParam);
  if (nID == SC_MINIMIZE)
    ShowWindow(SW_HIDE);
}

热点排行