none
画面サイズの取得方法について RRS feed

  • 質問

  • VisualC++2005でMFCプログラムを作成しています。

    プログラムの画面内の位置をMoveWindow関数を使い固定していますが、この際画面サイズを元にTopとLeftを計算したいです。

    VBで言うとScreen.WidhthとHeightの値はどうやれば取得できますか?

    2007年9月27日 6:46

回答

すべての返信

  • こんにちわ。雅です。

     

    GetWindowRectでどうですか?

     

    でわ。

     

    2007年9月27日 7:43
  • SystemParametersInfoでSPI_GETWORKAREAを使用してはどうでしょう?

    マルチディスプレイ非対応ですけど・・・。

    2007年9月27日 10:22
  • 雅さん、FC_Shiroさん 早速の返信ありがとうございます。

     

    GetWindowRect関数でフォームサイズ取得しているのですが、画面サイズ取得する際の引数というか・・記述法が判りません。

    同関数で親ウインドウサイズを取得したら、エラダウンしてしまいました。

    もう少し詳細に御教授願えないでしょうか?

     

    2007年9月28日 0:30
  • CRect rect;
    SystemParametersInfo(SPI_GETWORKAREA, 0, &rect, 0);

     

    2007年9月28日 1:15
  • こんにちわ。雅です。

     

    ごめんなさい勘違いしてました。

    自ウィンドウのサイズじゃないんですね。

     

    デスクトップウィンドウならFC_Shiroさんの方法かこんなのはどうでしょうか?

     

    HDC dc = GetDC(NULL);

    int Height = GetDeviceCaps(dc, HORZRES);

    int Width = GetDeviceCpas(dc, VERTRES);

    ReleaseDC(NULL, dc);

     

    でわ。

     

    2007年9月28日 2:08
  • 雅さん、FC_Shiroさん ありがとうございました。

    どちらも出来ました。

    書籍も読んでいるのですが、判らない事多く、お世話になりっぱなしで恐縮します。

    なんとか無事システム導入にこぎつけたので、一安心です。

     

    2007年9月28日 9:42