确保SetForegroundWindow()成功.运行单个实例

确保SetForegroundWindow()成功

 

HWND       hForeWnd       =       NULL;        
  HWND   hWnd=::FindWindow(NULL,"QQ用户登录");      
  DWORD       dwForeID;        
  DWORD       dwCurID;        
           
  hForeWnd       =       ::GetForegroundWindow();        
  dwCurID       =       ::GetCurrentThreadId();        
  dwForeID       =       ::GetWindowThreadProcessId(       hForeWnd,       NULL       );        
  ::AttachThreadInput(       dwCurID,       dwForeID,       TRUE);        
  ::ShowWindow(       hWnd,       SW_SHOWNORMAL       );        
  ::SetWindowPos(       hWnd,       HWND_TOPMOST,       0,0,0,0,       SWP_NOSIZE|SWP_NOMOVE       );        
  ::SetWindowPos(       hWnd,       HWND_NOTOPMOST,       0,0,0,0,       SWP_NOSIZE|SWP_NOMOVE       );        
  ::SetForegroundWindow(       hWnd       );        
  ::AttachThreadInput(       dwCurID,       dwForeID,       FALSE);

 

运行单个实例
BOOL CInstanceDlg::FirstInstance(CString stTemp)
{
 CWnd *pWndPrev,*pWndChild;
 if(pWndPrev=CWnd::FindWindow(NULL,stTemp))
 {
  pWndChild=pWndPrev->GetLastActivePopup();// 函数确定指定窗口中的哪一个弹出式窗口是最近活动的窗口
  if(pWndPrev->IsIconic())                 // 判断窗口是否为最小化
   pWndPrev->ShowWindow(SW_RESTORE);
   pWndPrev->SetForegroundWindow();     // 窗口托到最前台
   return FALSE;
 }
 else
   return TRUE;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值