难得碰到的问题,请高手帮我解决
当已运行的实例在后台或最小化时,如果再想运行第二个实例,则将第一个实例提到前台,并且不运行第二个实例,我在 winmain 的开始部分加了如下指令:
HANDLE hInstanceMutex = ::CreateMutex(NULL,FALSE, "Form1");
if(GetLastError() == ERROR_ALREADY_EXISTS)
{
if(hInstanceMutex)
CloseHandle(hInstanceMutex);
//Application->Title = "test";
HWND AppWnd=FindWindow(NULL,"test");
if(AppWnd)
{
if(IsIconic(AppWnd) || !IsWindowVisible(AppWnd))
ShowWindow(AppWnd,SW_RESTORE);
SetForegroundWindow(AppWnd);
}
return 0;
}
============================================================
在运行程序时遇到了一点麻烦,如果第一个实例没有被最小化,则一切正常。
但是如果第一个实例已被最小化,再运行第二次时,也可以把第一个实例提到前台来,
可是最小化的功能却不能实现了—— 不管怎么样按最小化按钮,窗口都不能再被最小
化了。??????????????????? 什么原因,请高手指点迷津!