想了一些方法都不能实现,请大家多多帮忙谢谢

解决方案 »

  1.   

    ::FindWindow();
    SetActiveWindow();
      

  2.   

    SetWindowPos(wndTopMost  ,...)

    SetForegroundWindow
    BringWindowToTop
      

  3.   

    用mutex,来发现发现是否已经运行了程序。如果发现已经运行,就给已经运行了的程序发一个约好了的消息。已经运行了的程序,收到这个约好了的消息,就把自已设定在最顶层。
      

  4.   

    前面几楼朋友的做法我都试了,应该是不行的。因为相当于有两个进程,他们的窗口是不同的。
    我用来判断是否正在运行是通过mutex来做的,但是这边要怎么发送消息,另一边又要怎么接受消息呢
      

  5.   

    在InitInstance中:m_hMutex = ::CreateMutex(NULL, FALSE, GUID);
    if (ERROR_ALREADY_EXISTS == GetLastError())
    {
    AfxMessageBox(_T("xxxx"));
    HWND hItSelf = ::FindWindowEx(NULL, NULL, NULL, _T("you window title"));
    if (NULL == hItSelf)
    AfxMessageBox(_T("yyyyy"))
            else
    ::SetWindowPos(hItSelf ,HWND_TOPMOST, ..., SWP_SHOWWINDOW);  
    return FALSE;
    }
      

  6.   


    这个可以了,谢谢。但是万一别的窗口也是这个title就比较麻烦了,估计一般也不会。
    十分感谢
      

  7.   

    m_hMutex = ::CreateMutex(NULL, FALSE, GUID);
    if (ERROR_ALREADY_EXISTS == GetLastError())
    {
        AfxMessageBox(_T("xxxx"));
        HWND hItSelf = ::FindWindowEx(NULL, NULL, NULL, _T("you window title"));
        if (NULL == hItSelf)
            AfxMessageBox(_T("yyyyy"))    
            else
            ::SetWindowPos(hItSelf ,HWND_TOPMOST, ..., SWP_SHOWWINDOW);  
        return FALSE;
    }
    这个办法好