检查全屏应用是否已失去焦点以恢复桌面屏幕分辨率

时间:2013-06-04 13:04:49

标签: c++ visual-c++ visual-studio-2012

我很想知道“全屏”应用程序(将屏幕分辨率更改为某个值)的应用程序检测何时失去焦点并恢复桌面分辨率。之后,他们如何通过最大化并将其重新设置为全屏来检测他们是否重新获得焦点?

基本上我拥有的东西:

LONG SetScreenRes(int cx,int cy)
{
    DEVMODE dm;

    dm.dmSize       = sizeof(DEVMODE);
    dm.dmPelsWidth  = cx;
    dm.dmPelsHeight = cy;
    dm.dmFields     = DM_PELSWIDTH | DM_PELSHEIGHT;

    return ChangeDisplaySettings(&dm, CDS_FULLSCREEN);
}

工作正常,但是当我最小化应用程序时,分辨率不会像任何其他应用程序一样恢复到桌面。所以我问:怎么检测到这个?其他应用程序是否只是最小化/最大化消息或其他东西?或者可能是非常简单的事情?

Visual C ++(VS 2012),它是一个DLL(我实际上正在进行扩展,这有关系吗?)。

1 个答案:

答案 0 :(得分:0)

问题解决了,钩住了WH_CALLWNDPROC和消息WM_ACTIVATEAPP。