モニタのキャプションを調べる

現在起動中のモニタの「幅, 高さ, ビットレート, フレッシュレート」を調べます。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの設定

  1. 新規プロジェクトで[空のプロジェクト]を作成します。
  2. メインプログラムのソースコードです。
    /***************************************/
    /*★ Device Caps を求める    前田 稔 ★*/
    /***************************************/
    #include    <windows.h>
    
    HWND    hDeskWnd;   //Desk Top Device
    HDC     hdc;
    int     horzres;    //デバイスの幅
    int     vertres;    //デバイスの高さ
    int     bitspixel;  //ビットレート
    int     vrefresh;   //フレッシュレート
    char    buf[512];
    
    //★ Windows Main 関数
    int PASCAL  WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int nCmdShow)
    {
        hDeskWnd = GetDesktopWindow();
        hdc= GetDC(hDeskWnd);
        if (hdc==NULL)
        {   MessageBox(NULL,"GetDC に失敗しました","Device Caps",MB_OK);
            return 0;
        }
        horzres= GetDeviceCaps(hdc, HORZRES);
        vertres= GetDeviceCaps(hdc, VERTRES);
        bitspixel= GetDeviceCaps(hdc, BITSPIXEL);
        vrefresh= GetDeviceCaps(hdc, VREFRESH);
        ReleaseDC(hDeskWnd,hdc);
        wsprintf(buf,"HORZRES= %d\nVERTRES= %d\nBITSPIXEL= %d\nVREFRESH= %d\n",
                 horzres,vertres,bitspixel,vrefresh);
        MessageBox(NULL,buf,"Device Caps",MB_OK);
        return 0;
    }
        
  3. GetDesktopWindow() で Windows System の HWND から HDC を取得します。
  4. GetDeviceCaps() で HDC のキャプションを調べます。
    HORZRES モニタの幅
    VERTRES モニタの高さ
    BITSPIXELビットレート
    VREFRESH フレッシュレート
  5. ウインドウを右クリックして、[画面のプロパティ][設定]で表示される値と比べてみて下さい。

超初心者のプログラム入門(Win32API C++)