2

「フルスクリーン」アプリケーション (画面解像度を特定の値に変更するアプリケーション)がフォーカスを失ったことを検出してデスクトップ解像度を復元する方法を知りたいです。その後、最大化して全画面表示に戻すことでフォーカスを取り戻したかどうかをどのように検出するのでしょうか?

基本的に私が持っているもの:

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 です (私は実際に拡張機能を作成していますが、それは重要ですか?)。

4

1 に答える 1

0

問題が解決し、WH_CALLWNDPROC とメッセージ WM_ACTIVATEAPP がフックされました。

于 2013-06-16T10:19:03.590 に答える