首页 > 编程语言 > 详细

线程互斥

时间:2014-11-01 06:25:46      阅读:257      评论:0      收藏:0      [点我收藏+]
////////////////////////////////////////////////////////////////
 HINSTANCE hInsta=::LoadLibrary("language\\XSelf.dll");
 if(hInsta!=NULL) AfxSetResourceHandle(hInsta);
/////////////////////////////////////////////////////////////////////////
 char pszExeName[32]="OnXDC XSelf";
 ::CreateMutex(NULL, TRUE, m_pszExeName);
 if (GetLastError()==ERROR_ALREADY_EXISTS) 
 {
  //Find our previous application‘s main window
  CWnd *pPrevWnd=CWnd::GetDesktopWindow()->GetWindow(GW_CHILD);
  while (pPrevWnd)
  {
   //Does this window have the previous instance tag set?
   if (::GetProp(pPrevWnd->GetSafeHwnd(), m_pszExeName))
   {
    //found window,now set focus to the window
    //first restore window if it is currently iconic
    if (pPrevWnd->IsIconic())
     pPrevWnd->ShowWindow(SW_RESTORE);
    //set focus to main window
    pPrevWnd->SetForegroundWindow();
    //if window has a pop-up window, set focus to pop-up
    pPrevWnd->GetLastActivePopup()->SetForegroundWindow();
    return FALSE;
   }
   //Did not find window,get next window in list
   pPrevWnd = pPrevWnd->GetWindow(GW_HWNDNEXT);
  }
  return FALSE;
 }

 

线程互斥

原文:http://embeded.blog.51cto.com/3989210/1570524

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!