デスクトップのサイズの求め方

[戻る]
たろう 2002/04/08(月) 11:09:41
最近頻繁に質問させて頂いております。
自分なりに調べてはいるのですが・・・

環境は、Win2000 VS6.0です。

メインフレームの表示位置を画面の右上に指定したいのですが、
Topは当然0として、Leftの計算方法は、
デスクトップのWidth−メインフレームのWidthということに
なると思うのですが、この場合のデスクトップのWidthというのは
どのように求めたらいいのでしょうか?

よろしくお願い致します。

Bun 2002/04/08(月) 11:18:03
GetDesktopWindow(), GetWindowRect()

あたりでできませんか?

たろう 2002/04/08(月) 11:32:42
[[解決]]
素早い御回答ありがとうございます。

早速試したところ、うまくいきました。

本当にありがとうございました。

dairygoods 2002/04/08(月) 13:24:50
> Topは当然0として、Leftの計算方法は、

topは0ではありません。タスクバーが上にある場合もあります。

  CRect rect;
  ::SystemParametersInfo(SPI_GETWORKAREA, 0, &rect, 0);

でタスクバーを除いた領域が取得できます。

#タスクバー上愛好者からのお願いです(^^;

Bun 2002/04/08(月) 13:38:34
>topは0ではありません。タスクバーが上にある場合もあります。

なるふぉどー。気がつきませんでした。ためになります。

>  CRect rect;
>  ::SystemParametersInfo(SPI_GETWORKAREA, 0, &rect, 0);

RECT rect;

ですか。(すんません、突っ込んで(笑))

dairygoods 2002/04/08(月) 14:09:32
CRectは、RECTを継承してますので、どちらでも同じだと思います。

そういえば、CRectには、operator LPCRECT() も定義されているので、
  ::SystemParametersInfo(SPI_GETWORKAREA, 0, (LPCRECT)rect, 0);
でもいけそうです。

あ、MFCとは書いてない?

dairygoods 2002/04/08(月) 14:11:29
> そういえば、CRectには、operator LPCRECT() も定義されているので、
>   ::SystemParametersInfo(SPI_GETWORKAREA, 0, (LPCRECT)rect, 0);

operator LPRECT() の間違いでした。
::SystemParametersInfo(SPI_GETWORKAREA, 0, (LPRECT)rect, 0);

Bun 2002/04/08(月) 14:24:12
>operator LPRECT() の間違いでした。
>::SystemParametersInfo(SPI_GETWORKAREA, 0, (LPRECT)rect, 0);

operator がありました。失礼しました。m(__)m

>あ、MFCとは書いてない?

そこまで、つっこみません。(笑)

古いスレッドには追加発言できません。