如上

解决方案 »

  1.   

    这个问题我们的项目中也遇到过,用普通的办法是没法解决的
    可能有人会说用TopMost属性,但任务管理器,windows任务栏同样具有topmost属性,所以他们之间是可以切换的
    所以用了一系列手段来保证我们的界面在最前面,如屏蔽window热键,修改注册表使任务管理器被禁用之类的
    具体我不太清楚,毕竟不是我做的
      

  2.   

    感谢一楼的回答,那么就是说要更改系统的原有设置了啊,屏蔽window热键,修改注册表使任务管理器被禁用之类,这样用户就没法用这些东西了,有没有不更改设置办法?谢谢
      

  3.   

    修改注册表在Vista下不能被支持吧。
      

  4.   

    Easy!USE API: SetWindowPos可以使你的窗口处于最前端
      

  5.   

    Easy! USE   API:   SetWindowPos 可以使你的窗口处于最前端 ================================
    但是当我打开Window任务管理器之类的程序时,我的程序又到下面去了
    我想让我的程序始终在最上面,即使它没有被激活
      

  6.   

    有个高手写了个tooltip风格的窗口,处于最前端,打开Window任务管理器之类的程序时也在最上面。
    一般窗口怎么做到我还不会
    http://www.codeproject.com/KB/miscctrl/tooltipzen.aspx
      

  7.   

    有个高手写了个tooltip风格的窗口,处于最前端,打开Window任务管理器之类的程序时也在最上面。 
    一般窗口怎么做到我还不会 
    http://www.codeproject.com/KB/miscctrl/tooltipzen.aspx ========================================================
    我去下载了 他哪个也不行啊 仍旧会在下面
      

  8.   

    MessageBox中有个MB_SYSTEMMODAL好像有个功能,窗口就不清楚了
      

  9.   

    楼上,对话框也有systemmodal属性,但是效果和topmost一样
      

  10.   

    这个要求确实太过分。不过做法的思路是:
    1. 先设置topmost属性
    2. 监控主窗口Z-order属性,如果发现改变之后,立即将程序主窗口设置为最上面。但这样做的话,当出现楼上所说的情况,你的程序会造成系统死锁,是一种极端危险的做法。
      

  11.   

    过分吗?
    你是没遇到过这样的项目,这样的实际需求
    我们的项目就是要让用户完全隔离windows系统,使系统对用户完全不可见,你说不这样咋整?
      

  12.   

    过分吗? 
    你是没遇到过这样的项目,这样的实际需求 
    我们的项目就是要让用户完全隔离windows系统,使系统对用户完全不可见,你说不这样咋整? ---------------------------------------------------------------------------虚拟桌面就行了。
      

  13.   

    这个要求确实太过分。 不过做法的思路是: 
    1.   先设置topmost属性 
    但这样做的话,当出现楼上所说的情况,你的程序会造成系统死锁,是一种极端危险的做法。
    =====================================================================
    怎么判断 2.   监控主窗口Z-order属性,如果发现改变之后,立即将程序主窗口设置为最上面。 
    给个思路啊
      

  14.   

    监控Z-order 首先编写窗口的位置、大小和活动相关的消息处理函数,然后在这些函数里使用GetNextWindow来确认本窗口是不是最上层窗口。
    需要处理的消息大概有这些:WM_SIZE, WM_WINDOWPOSCHANGE WM_MOVE,WM_NCCALCSIZE等。
      

  15.   

    SetWindowPos或者MoveWindow就可以实现啊
      

  16.   

    SetWindowPos或者MoveWindow就可以实现啊
    ======================================================
    能说一下具体怎么弄么 
      

  17.   

    SetWindowPos看参数说明:
    BOOL SetWindowPos(
      HWND hWnd,             // handle to window
      HWND hWndInsertAfter,  // placement-order handle
      int X,                 // horizontal position
      int Y,                 // vertical position
      int cx,                // width
      int cy,                // height
      UINT uFlags            // window-positioning options
    );例子:
    SetWindowPos(m_hWnd,HWND_TOP,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);m_hWnd   -->   mfc窗口句柄
      

  18.   

    在 InitInstance 函数中加上下面的代码:
    SetWindowPos(&CWnd::wndTopMost,0,0,0,0, SWP_NOMOVE | SWP_NOSIZE);  //OnTop就可以实现:
    窗口始终保持最上面, 是所有窗口的最上面,即使打开了象Window任务管理器这样的窗口,我的窗口也要在它的上面(即使我的窗口没激活)另程序中如果有需要还可以处理一下关闭,和最小化,等事件。但是如果你强调的是绝对,永远,就是accsoar所说的他们客户要求的隔离系统的那种,那你还需要去对键盘鼠标的事件等做一些处理,
    防止用户从键盘鼠标调到其他程序,且调用的程序也拥有Top属性。
      

  19.   

    在 InitInstance 函数中加上下面的代码: 
    SetWindowPos(&CWnd::wndTopMost,0,0,0,0, SWP_NOMOVE  ¦ SWP_NOSIZE);  //OnTop 就可以实现: 
    窗口始终保持最上面, 是所有窗口的最上面,即使打开了象Window任务管理器这样的窗口,我的窗口也要在它的上面(即使我的窗口没激活) 我编了 做不到啊 呵呵  
    感谢各位的回答 谢谢