启动MFC程序后,若没关闭,再启动就打开不了,应该如何做?多谢
启动MFC程序后,若没关闭,再启动就打开不了,应该怎么做?谢谢
例如做了个MFC程序A,打开A 正常启动。未关闭,打开A,不在弹出。已关闭,打开A,正常打开
------解决方案--------------------
例如做了个MFC程序A,打开A 正常启动。未关闭,打开A,不在弹出。已关闭,打开A,正常打开
------解决方案--------------------
//创建命名信标对象。
HANDLE hSem=CreateSemaphore(NULL,1,1,"维新");
if(hSem) //信标对象创建成功。
{
//信标对象已经存在,则程序已有一个实例在运行。
if(ERROR_ALREADY_EXISTS==GetLastError())
{
CloseHandle(hSem); //关闭信号量句柄。
//获取桌面窗口的一个子窗口。
HWND hWndPrev=::GetWindow(::GetDesktopWindow(),GW_CHILD);
while(::IsWindow(hWndPrev))
{
//判断窗口是否有我们预先设置的标记,如有,则是我们寻找的窗口,并将它激活。
if(::GetProp(hWndPrev,"维新"))
{
//如果主窗口已最小化,则恢复其大小。
if (::IsIconic(hWndPrev))
::ShowWindow(hWndPrev,SW_RESTORE);
//将应用程序的主窗口激活。
::SetForegroundWindow(hWndPrev);
return FALSE; //退出实例。
}