如何确定当前窗口是否为活动窗口?

Mar*_*ram 10 c++ windows winapi mfc

如何判断我的窗口是否是当前活动窗口?我目前的猜测是做GetForegroundWindow并将HWND与我的窗口进行比较.有比这更好的方法吗?

我正在使用Win32 API/MFC.

Bob*_*ore 11

是的,这是我所知道的唯一方式.

但是你必须处理GFW可以返回NULL的事实.通常,当另一个桌面(例如屏幕保护程序桌面)处于活动状态时会发生这种情况.请注意,使用保护程序密码会影响是否使用其他桌面(这取决于Windows版本,我不记得不同版本的工作原理).

此代码也无法在Visual Studio下的调试模式下正常工作,因为您将获得VS的窗口句柄.

除此之外一切都是桃子的:-)