最近頻繁に質問させて頂いております。
自分なりに調べてはいるのですが・・・
環境は、Win2000 VS6.0です。
メインフレームの表示位置を画面の右上に指定したいのですが、
Topは当然0として、Leftの計算方法は、
デスクトップのWidth-メインフレームのWidthということに
なると思うのですが、この場合のデスクトップのWidthというのは
どのように求めたらいいのでしょうか?
よろしくお願い致します。
GetDesktopWindow(), GetWindowRect()
あたりでできませんか?
素早い御回答ありがとうございます。
早速試したところ、うまくいきました。
本当にありがとうございました。
> Topは当然0として、Leftの計算方法は、
topは0ではありません。タスクバーが上にある場合もあります。
CRect rect;
::SystemParametersInfo(SPI_GETWORKAREA, 0, &rect, 0);
でタスクバーを除いた領域が取得できます。
#タスクバー上愛好者からのお願いです(^^;
>topは0ではありません。タスクバーが上にある場合もあります。
なるふぉどー。気がつきませんでした。ためになります。
> CRect rect;
> ::SystemParametersInfo(SPI_GETWORKAREA, 0, &rect, 0);
RECT rect;
ですか。(すんません、突っ込んで(笑))
CRectは、RECTを継承してますので、どちらでも同じだと思います。
そういえば、CRectには、operator LPCRECT() も定義されているので、
::SystemParametersInfo(SPI_GETWORKAREA, 0, (LPCRECT)rect, 0);
でもいけそうです。
あ、MFCとは書いてない?
> そういえば、CRectには、operator LPCRECT() も定義されているので、
> ::SystemParametersInfo(SPI_GETWORKAREA, 0, (LPCRECT)rect, 0);
operator LPRECT() の間違いでした。
::SystemParametersInfo(SPI_GETWORKAREA, 0, (LPRECT)rect, 0);
>operator LPRECT() の間違いでした。
>::SystemParametersInfo(SPI_GETWORKAREA, 0, (LPRECT)rect, 0);
operator がありました。失礼しました。m(__)m
>あ、MFCとは書いてない?
そこまで、つっこみません。(笑)