将窗口移动到前端, BringWindowToTop() 的问题
来源:互联网 发布:剑灵人女完美身材数据 编辑:程序博客网 时间:2024/04/27 20:51
有一段代码,是在我们的应用程序中将其他应用程序的窗口移动到最前端,当我们的程序在 Vista 下运行的时候遇到了些问题,有时候被移动窗口只是闪动任务栏上的按钮,并未能将窗口移动到前方来. 研究了一下,发现是否能够移动成功和当前自身进程所附加的输入上下文有关, 参见
WIN32 API AttachThreadInput()...
写了个 MyBringWindowToTop() 如下, 这是个 draft 把我用到过的能把窗口拿到最前方的 API 都罗列在里面了, 也没有正确的返回值, 供参考.
BOOL MyBringWindowToTop(HWNDhWnd)
{
HWNDhFrgWnd = ::GetForegroundWindow();
AttachThreadInput(GetWindowThreadProcessId(hFrgWnd,NULL),GetCurrentThreadId(),TRUE );
::SetForegroundWindow(hWnd);
::BringWindowToTop(hWnd);
if(!::BringWindowToTop(hWnd))
{
printf("BringWindowToTop Error %d/n",GetLastError());
}
else
{
printf("BringWindowToTop OK/n");
}
if(!::SetForegroundWindow(hWnd))
{
printf("SetForegroundWindow Error %d/n",GetLastError());
}
else
{
printf("SetForegroundWindow OK/n");
}
SwitchToThisWindow(hWnd,TRUE);
AttachThreadInput(GetWindowThreadProcessId(hFrgWnd,NULL),
GetCurrentThreadId(),FALSE);
returnTRUE;
}
- 将窗口移动到前端, BringWindowToTop() 的问题
- 将窗口移动到前端, BringWindowToTop() 的问题
- 将窗口移动到前端, BringWindowToTop() 的问题
- 将窗口移动到前端, BringWindowToTop() 的问题 .
- 将窗口移动到前端, BringWindowToTop() 的问题
- 解决SetForegroundWindow和BringWindowToTop等函数有时失败,无法将窗口带到前台的问题 C++代码
- 将一个子控件移动到指定的窗口位置
- 怎样将ubuntu的关闭、最大化、最小化按钮移动到窗口右边
- 将数组非零元素依次移动到数组前端
- 将窗口不可移动
- 取代BringWindowToTop的一种解决办法
- 将EditText的光标移动到最后
- 百度前端学院(IFE),面向大学生的前端技术学习平台,请在底部填写css,将彩色`IFE`字母移动到指定位置
- 数据窗口中光标的移动问题
- 将window.open打开的窗口保持在最前端
- Android中使用百度地图无法将地图移动到当前位置的问题
- 一个将数字循环移动的问题
- 移动Panel的滚动条到窗口中间
- iPhone、iPad 即将过气 Apple TV 才是苹果的未来
- Windows创建进程
- 远线程DLL注入
- 学习PHP面向对象(三)封装
- 股票基本知识——名词解释!(备用)
- 将窗口移动到前端, BringWindowToTop() 的问题
- 深入Android
- T-SQL ROW_NUMBER()函数的使用
- vb.net 逐行读取RichTextBox内容
- java复制文件或文件夹
- 进程的用户ID探究
- vb.net 通过按钮复制内容
- 后缀数组的应用
- asp.net 导出数据到Excel模板分页