我做了一个运行在后台的网络检测小程序,主界面是一对话框,程序一开始运行就ShowWindow(SW_HIDE)将它隐藏在后台,并将其设一个小图标在任务条的右下角,当程序检测到网络错误,我ShowWindow(SW_SHOWNORMAL),并SetForegroundWindow(),它在任务条上的标题栏由蓝边白,由白变蓝闪个不停,却不强行成为当前活动窗口,不知道怎么才能象有些程序,好比一些安装程序那样,不管你现在在干什么,不管你的当前程序是什么,都强行成为主窗口,难道SetForegroundWindow()做不到这一点吗?那还有什么函数?

解决方案 »

  1.   

    ShowWindow有个参数是让窗口保持在最前面的。
    具体看看msdn。
      

  2.   

    SetWindowPos,其中一个参数用WND_TOPMOST(好象,记不清了)
      

  3.   

    这个问题很多人都问过
    但是好像没有什么好的办法
    你可以在setforegroundwindow后
    向该窗口发送回车键试试看
      

  4.   

    siphonelee,回车键怎么向窗口发送?
    liaomu,ShowWindow里没有这样的参数,最合适的就是SW_SHOWNORMAL,不行。
    好象FlashGet这个软件下载完以后提示对话框可以强行弹出,不知道怎么搞的。
      

  5.   

    Twig,是哪个函数加属性???
      

  6.   

    我用API的SetWindowPos()实现了,
    但是CWnd::SetWindowPos()的第一个参数却不知道用什么。
      

  7.   

    &CWnd::wndTopMost
    http://msdn.microsoft.com/library/en-us/vclib/html/_mfc_cwnd.3a3a.setwindowpos.asp?frame=true
      

  8.   

    发送回车用keybd_event就可以
    或者SendMessageSetWindowPos可以解决问题嘛?