デスクトップのサイズの求め方 – プログラミング – Home

デスクトップのサイズの求め方
 
通知
すべてクリア

[解決済] デスクトップのサイズの求め方


たろう
 たろう
(@たろう)
ゲスト
結合: 25年前
投稿: 51
Topic starter  

最近頻繁に質問させて頂いております。
自分なりに調べてはいるのですが・・・

環境は、Win2000 VS6.0です。

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

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


引用未解決
トピックタグ
Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
 

GetDesktopWindow(), GetWindowRect()

あたりでできませんか?


返信引用
たろう
 たろう
(@たろう)
ゲスト
結合: 25年前
投稿: 51
Topic starter  

素早い御回答ありがとうございます。

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

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


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

> Topは当然0として、Leftの計算方法は、

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

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

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

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


返信引用
Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
 

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

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

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

RECT rect;

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


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

CRectは、RECTを継承してますので、どちらでも同じだと思います。

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

あ、MFCとは書いてない?


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

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

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


返信引用
Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
 

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

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

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

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました