BringWindowToTop(), SetForegroundWindow(), SetActiveWindow()

1. SetActiveWindow()

原型:

<span style="font-size:14px;">CWnd* SetActiveWindow();
HWND SetActiveWindow(hWnd);</span>

功能:该函数激活一个窗口,hWnd:将被激活的最顶层窗口。

返回值:若函数调用成功,则返回原先活动窗口的句柄。若函数调用失败,则返回值为NULL

备注:SetActiveWindow函数激活一个窗口,但当应用程序处于后台时,将不激活指定窗口。当应用程序激活窗口时处于前台,则窗口将被放到前台

2. SetForegroundWindow()

原型:

<span style="font-size:14px;">BOOL SetForegroundWindow();
BOOL SetForegroundWindow(hWnd);</span>

功能:该函数将创建指定窗口的线程设置到前台,并且激活该窗口。键盘输入转向该窗口,并为用户改各种可视的记号。系统给创建前台窗口的线程分配的权限稍高于其他线程。

SetForegroundWindow窗口函数激活一个窗口并将其强制为前台的。当应用程序要显示关键错误或需要用户立即注意的信息时,应只能调用SetForegroundWindow函数。

返回值:如果窗口设入了前台,返回值为非零;如果窗口未被设入前台,返回值为零。

备注:前台窗口是z序顶部的窗口,是用户的工作窗口。在一个多任务优先抢占环境中,应让用户控制前台窗口。

3. BringWindowToTop()

原型:

<span style="font-size:14px;">VOID BringWindowToTop();
BOOL ::BringWindowToTop(m_hWnd)</span>

功能:该函数将指定的窗口设置到Z序的顶部。如果窗口为顶层窗口,则该窗口被激活;如果窗口为子窗口,则相应的顶级父窗口被激活。

返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。

备注:使用BringWindowToTop函数显示出被其他窗口部分或全部遮盖的窗口。

调用这个函数类似于调用SetWindowPos函数来改变窗口在Z序中的位置,但是BringWindowToTop函数并不能使一个窗口成为前台窗口。

如果应用程序不在前台中而想设置在前台中,可以调用SetForegroundWindow函数。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-28 15:40:18

BringWindowToTop(), SetForegroundWindow(), SetActiveWindow()的相关文章

SetForegroundWindow

SetForegroundWindow 函数功能:该函数将创建指定窗口的线程设置到前台,并且激活该窗口.键盘输入转向该窗口,并为用户改各种可视的记号.系统给创建前台窗口的线程分配的权限稍高于其他线程. 函数原型:BOOL SetForegroundWindow() SetForegroundWindow()函数本身是不带参数的,具体激活某个窗口的方法可以用: pWnd->SetForegroundWindow();//这里的pWnd即所要激活窗口的句柄. 返回值:如果窗口设入了前台,返回值为非零

SetForegroundWindow的正确用法

在SetForegroundWindow之前比较早的时候(比如main函数里)调用一下以下代码: DWORD dwTimeout = -1; SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, (LPVOID)&dwTimeout, 0); if (dwTimeout >= 100) { SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, (LPVOID)0, SPIF_SENDC

一些窗口API函数,比如SetForegroundWindow,SwitchToThisWindow

SetForegroundWindowSwitchToThisWindow procedure TApplication.BringToFront;varTopWindow: HWnd;beginif Handle <> 0 thenbeginTopWindow := GetLastActivePopup(Handle);if (TopWindow <> 0) and (TopWindow <> Handle) andIsWindowVisible(TopWindow)

将后台窗口激活到前台的方法(使用AttachThreadInput和SetForegroundWindow两个API)

下面这种方法是我见到的最理想的,还有一些其他的方法,像通过SetWindowsPos这个API设置窗口的Z-oder到最顶层,再设置回去.还有通过把当前窗口设置到底层,然后激活目标窗口等等方法. HWND hCurWnd = NULL; DWORD dwMyID; DWORD   dwCurID; hCurWnd = ::GetForegroundWindow(); dwMyID = ::GetCurrentThreadId(); dwCurID = ::GetWindowThreadProce

猎豹MFC--只运行一个实例CreateMutex() SetForegroundWindow()

在头文件中声明变量,来保存互斥对象,互斥对象是windows的一个内核对象. 在初始化实例中创建互斥对象并进行检查: 在创建窗口的时候: 添加窗口属性标记: 关闭窗口时把属性删除: 当有一个实例在运行时,要找到该实例,把其置为前端:修改之前实例初始化代码的测试代码 来自为知笔记(Wiz)

window窗口详解

窗口 在图形化的基于win32的应用程序,窗口是屏幕的矩形区域,应用程序显示输出并接收来自用户的输入,因此,一个图形化基于win32的应用程序的首要任务之一就是创建一个窗口. 窗口与其它窗口共享屏幕,[本事]包括来自其它应用程序的窗口,每次只有一个窗口可以接收来自用户的输入,用户可以使用鼠标.键盘或其它输入设备与此窗口以及拥有该窗口的应用程序进行交互. 关于窗口 这个概述描述了应用程序用来创建和使用窗口的编程单元:管理窗口之间的关系:以及大小.移动.和显示窗口:概述包括以下主题: 桌面窗口  

英文不好也能快速&quot;记忆&quot; API

英文不好不要紧,把API函数导入打字练习类软件,即是练习打字速度,提高编程效率:也能短时间记忆API. 坚持每天打一遍,约2小时,连续打两周,会对API有很好的记忆,此方法是结合英文学习方法!以下是Window API函数例表,大家可以试试效果特别好! AbnormalTermination AbortDoc AbortPath AbortPrinter AbortProc AbortSystemShutdown AccessNtmsLibraryDoor ActivateKeyboardLay

Windows API 大全

常用Windows API1. API之网络函数WNetAddConnection 创建同一个网络资源的永久性连接WNetAddConnection2 创建同一个网络资源的连接WNetAddConnection3 创建同一个网络资源的连接WNetCancelConnection 结束一个网络连接WNetCancelConnection2 结束一个网络连接WNetCloseEnum 结束一次枚举操作WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接WNetDis

DELPHI下API简述(1800个API)

DELPHI下API简述 http://zero.cnbct.org/show.asp?id=144 auxGetDevCaps API 获取附属设备容量 auxGetNumDevs API 返回附属设备数量 auxGetVolume API 获取当前卷设置 auxOutMessage API 向输出设备发送消息 auxSetVolume API 设置附属设备卷 AbortDoc API 终止一项打印作业 AbortPath API 终止或取消DC中的一切路径 AbortPrinter API