博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SetForeGroundWindow
阅读量:2377 次
发布时间:2019-05-10

本文共 825 字,大约阅读时间需要 2 分钟。

BOOL CDlg::SetForeGroundWindowEx()
{
HWND hForeWnd = NULL; 
HWND hWnd= GetSafeHwnd(); 
DWORD dwForeID; 
DWORD dwCurID; 
hForeWnd = ::GetForegroundWindow(); 
dwCurID =  ::GetCurrentThreadId(); 
dwForeID = ::GetWindowThreadProcessId( hForeWnd, NULL );
if (hForeWnd==GetSafeHwnd())//如果当前窗口已经是前景窗口 直接返回
   return TRUE;
if(!AttachThreadInput( dwCurID, dwForeID, TRUE)) //切换键盘输入焦点AttachThreadInput 
{
return FALSE;
}
//if(!ShowWindow(SW_SHOWNORMAL )) //显示窗口ShowWindow
//{
//
//
return FALSE;
//}
if(!::SetWindowPos(hWnd,HWND_TOPMOST, 0,0,0,0, SWP_NOSIZE|SWP_NOMOVE )) //更改窗口的Zorder,SetWindowPos使之最上,为了不影响后续窗口的Zorder,改完之后,再还原
{
return FALSE;
}
if(!::SetWindowPos(hWnd,HWND_NOTOPMOST, 0,0,0,0, SWP_NOSIZE|SWP_NOMOVE ))
{
return FALSE;
}
if(!SetForegroundWindow())
{
return FALSE;
}

return TRUE;

//AttachThreadInput( dwCurID, dwForeID, FALSE);

}

转载地址:http://eeoxb.baihongyu.com/

你可能感兴趣的文章
access表(.mdb文件) 导入 power designer
查看>>
PowerDesigner如何设计表之间的关联
查看>>
WinForm程序或WPF程序只能打开一个子窗体 解决窗口关闭不能再打开的BUG
查看>>
SQLite通用数据库类
查看>>
查询.db(SQLite数据库文件)中所有表
查看>>
使用Inno Setup 打包.NET程序,并自动安装.Net Framework
查看>>
inno setup 5 添加快捷方式默认选中
查看>>
WPF以管理员运行程序
查看>>
WPF设置全局字体和字体嵌入
查看>>
C#根据控件名获取控件对象
查看>>
C#WinForm 藏到系统托盘
查看>>
Aspose.Cells区域格式设置
查看>>
遍历子控件清空数据
查看>>
C#WinForm中TreeView默认展开设置
查看>>
jQuery选择器总结[强大的jQuery]
查看>>
用javascript实现本地图片预览(HTML5)
查看>>
C#实现Zip压缩解压实例
查看>>
Android导航图
查看>>
Android学习笔记•从零开始•第一天•基本知识
查看>>
Android学习笔记•从零开始•第二天•Intent-穿梭在Activity之间
查看>>