MFC
画面の解像度や色数の変化を検知する


HomeProgramming TipsMFC Tips[MFC-010]

画面解像度や色数が変化すると、各アプリに対して WM_DISPLAYCHANGE が送信されます。
これをメッセージマップでキャッチすれば、変化と同時にプログラム処理を行うことが出来ます。

■ メッセージマップ

BEGIN_MESSAGE_MAP(COverlapMeter, CWnd)
    ON_MESSAGE(WM_DISPLAYCHANGE, OnDisplayChange)   // ← 追加
END_MESSAGE_MAP()


■ クラス定義

    afx_msg LRESULT OnDisplayChange(WPARAM wParam, LPARAM lParam);


■ 実装

LRESULT COverlapText::OnDisplayChange(WPARAM wParam, LPARAM lParam)
{
    BYTE byDepth    = (BYTE)wParam;             // 色数
    WORD wScrWidth  = (WORD)LOWORD(lParam);     // 画面横幅ピクセル数
    WORD wScrHeight = (WORD)HIWORD(lParam);     // 画面縦幅ピクセル数

    // それぞれの処理をする

    return 0;
}





 Copyright 2005 VALGUS. All Rights Reserved.