如何在程序中将其它窗口调至前台。

      像在禁止一个程序运行多个实例的技巧设计中,当找到已运行的了,程序只是简单的退出,如果能将这个已经运行的实例调至前台,对于用户使用来说就更加方便了。

      对于具有窗口的程序是可以实现的,这个设计同样可以将正在运行的任意一个窗口程序调至前台。

      使用CWnd::FindWindow()静态函数获得窗口指针,就可以进行操作了。

m_hOneInstance=::CreateMutex(NULL,FALSE,UNIQE_NAME); if(GetLastError()==ERROR_ALREADY_EXISTS) { AfxMessageBox("Application already running!"); // CWnd* pWnd=CWnd::FindWindow(NULL,"RWEEPROM"); if(pWnd!=NULL) { CWnd* pWndPopup = pWnd->GetLastActivePopup(); pWnd->SetForegroundWindow(); if(pWnd->IsIconic()) pWnd->ShowWindow(SW_SHOWNORMAL); if(pWnd!=pWndPopup) pWndPopup->SetForegroundWindow(); } return FALSE; }  

对于对话框程序来说,主要有窗口标题名指明,它的Window Class名可以是NULL或使用系统提供的对话框Window Class名:(LPCSTR)(DWORD)WC_DIALOG.对于文档程序,因为标题中有打开的文件名信息,所以窗口标题不好确定,最好提供Window Class名。或是指定当前某个特殊标题的窗口。

 

你可能感兴趣的:(null,application,Class,文档)