#define P4301_UI_EXE_ID _T("P4301_UI_EXE_ID")
BOOL CALLBACK EnumWndProc(HWND hwnd,LPARAM lParam)
{
HANDLE hPreWnd = GetProp(hwnd,P4301_UI_EXE_ID);
if( hPreWnd == (HANDLE)1)
{
*(HWND*)lParam = hwnd;
return false;
}
return true;
}
BOOL App::InitInstance()
{
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need
// Change the registry key under which our settings are stored
// TODO: You should modify this string to be something appropriate
// such as the name of your company or organization
HWND oldHWnd = NULL;
EnumWindows(EnumWndProc,(LPARAM)&oldHWnd); //枚举所有运行的窗口
if(oldHWnd != NULL)
{
showTaskBar(SW_HIDE);
::ShowWindow(oldHWnd,SW_SHOW); //激活找到的前一个程序
::SetForegroundWindow(oldHWnd); //把它设为前景窗口
PostQuitMessage(0);
return false; //退出本次运行
}
// CMainDlg message handlers
BOOL CMainDlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetProp(m_hWnd,P4301_UI_EXE_ID,(HANDLE)1);
...
}