質問
2009年5月26日火曜日 7:47
XGA(1024x768ピクセル)の画面で、
初期状態で画面いっぱいにウィンドウ表示するGUIアプリケーションを作ろうとしています。
Windowsではデフォルトで画面下部にタスクバーが存在するので
1024x768ピクセルからタスクバーのデフォルトサイズを差し引いたものを
ウィンドウサイズの初期値としたいのですが、
タスクバーのデフォルトサイズについて、根拠となる公式の資料が見つからず困っています。
経験則的に28~35ピクセル程度としているTipsはよく見かけるのですが・・・
公式の資料をご存知でしたら、ぜひお教えください。
なお、対象とするOSは Windows XP / Vista / 7 を考えています。
すべての返信 (5)
2009年5月26日火曜日 9:59 ✅回答済み | 1 票
タスクバーは幅を広げたり狭めたり、縦に配置できたり、OS によって幅がまちまちだったりするので、
デフォルト サイズを規定するのは難しいように思うのですが...。
ちなみにタスクバーのガイドライン。中に配置するアイコンのサイズの規定はありますが。
Taskbar
http://msdn.microsoft.com/en-us/library/aa511446.aspx
ワーク エリアの説明はこれでしょうか。
Desktop
http://msdn.microsoft.com/en-us/library/aa511450.aspx
もうひとつ、Window Management のガイドライン。
Window Management
http://msdn.microsoft.com/en-us/library/aa511262.aspx
この中に、
Be sure to account for the space used by the taskbar by reserving 48 vertical relative pixels for windows displayed with the taskbar.
という一文がありますね。
2009年5月26日火曜日 8:05
SystemParametersInfo API ではどうですか?
SystemParametersInfo 関数
http://msdn.microsoft.com/ja-jp/library/cc429946.aspx
SPI_GETWORKAREA あたりを使って。
2009年5月26日火曜日 8:59
確かにそのようなAPIで
タスクバーがデフォルトサイズのときのXGAディスプレイにおける最大ウィンドウサイズを
1024x740ピクセルと検出することは可能なのですが、
差分となる28ピクセルのHeightについて
デフォルト値であると明記しているドキュメントが見つからない状態です。
アプリケーション開発のガイドライン資料などには掲載されているのでしょうか?
2009年5月26日火曜日 10:04
デフォルト値は、クリーンインストールしたときの実測値で十分ではありませんか?
その値に何の意味もありませんから、実行時にAPIで取得すべきと思いますよ。
実際、画面のデザインで「アクティブタイトルバー」のフォントサイズを変えるとタスクバーのサイズも連動して変わります。
またDPIを変えてもサイズが変わるでしょう。そして、最近のノートPCはDPIを変えた上で出荷されているものもあると聞きます。
もちろん、ユーザーの好みでタスクバーの段数を変えていたり、位置を左右などに変えていたりもするでしょうし。
というか画面いっぱいなら単純に最大化ではダメなんでしょうか?
あ、もちろんマルチモニタを考慮された方がいいと思います。
ユーザがそのアプリをセカンダリモニタで終了したら次回はセカンダリモニタで起動する(’’*
# Adobe Readerという悲惨なアプリがありまして、マルチモニタに対応していないんですよ、これが。
# セカンダリモニタで終了させても次回起動時はプライマリモニタで立ち上がってくる…。
# いつだったか改善されたと思ったら…中途半端。
# PDFファイルを2つ開くと1つ目はセカンダリモニタで開くのに2つ目はプライマリモニタで開く…orz
2009年5月26日火曜日 13:52
う〜ん
経緯をお話しした方が良いのかもしれません。
もともとSXGAのディスプレイ向けに
完全に各コンポーネントが固定配置されてしまった業務アプリ(そもそもこの前提が良くないのですが)を
使用感を変えずにXGA向けのサイズまで縮めなければならなくなったのです。
このため、
・ウィンドウサイズは固定(最大化もしない)
・できるかぎり広いウィンドウサイズ
の2点がまず要求されてしまっています。
タスクバーのサイズや位置がユーザー設定によって一意に決まらないのはよくわかっておりますが
業務アプリを動かすマシンの性格上、そうそう画面まわりの設定を初期値から変えるものではありませんし
何らかの最大公約数的なサイズを算出するための根拠として
デフォルトサイズについて記載されたドキュメントをMicrosoftが公開していれば
業務としては都合が良かったのですが・・・
残念ながらタスクバーのデフォルトサイズについては、APIから状況証拠を得る以外の方法がないようですね。
ガイドラインに示されている48ピクセルを、ひとつの指標としたいと思います。
ありがとうございました。