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

tmac_roy 2013-01-25 08:51:02
窗口最小化到托盘后,还原窗口没有显示在最上面,怎样才能让窗口显示在最上面呢?
...全文
237 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sumos 2013-01-25
  • 打赏
  • 举报
回复
SetForegroundWindow BringWindowToTop
gfm688 2013-01-25
  • 打赏
  • 举报
回复

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);
}
zyrr159487 2013-01-25
  • 打赏
  • 举报
回复
::SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,cxScreen,cyScreen,SWP_SHOWWINDOW|SWP_NOZORDER); 置顶显示
九州剑王 2013-01-25
  • 打赏
  • 举报
回复
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;

}

}

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧