VB6です。
XP、VISTAで、ウィンドウのデザインが異なる場合ですが、
枠の幅、ウィンドウの幅を正確に得るにはどうしたらよいでしょうか?
また、幅(横方向)だけでなく、高さ(縦方向)も正確に得たいです。
高さのほうは、上側、下側の枠だけでなく、
キャプションが表示されるエリアの高さも得たいです。
すいませんが、教えていただけますでしょうか?
この場合のウィンドウというのが Form だとして、
(1) タイトルバーの高さ
(2) 枠線の太さ
(3) フォーム内部の高さ/幅
(4) 1〜3を合わせたフォーム外側の高さ/幅
などが分かれば良いのでしょうか。
まず、4 については、
Debug.Print Width / Screen.TwipsPerPixelX
Debug.Print Height / Screen.TwipsPerPixelY
にて得る事ができます。
3 については、ScaleMode を vbPixels にしておくと、
ScaleHeight / ScaleWidth にして調べられます。
通常は、これらが分かれば充分かと思いますが、もし、1 や 2 も
知りたいのであれば、GetSystemMetrics API を使ってみてください。
GetSystemMetrics で、
・枠の幅
・キャプションが表示されるエリア(タイトルバー?)の高さ
だけでなく、
・メニューバーの高さ
も得ることができました。
ありがとうございました。
ツイート | ![]() |