Discussion:
画面サイズの自動変更について
(too old to reply)
unknown
2008-06-02 12:33:01 UTC
Permalink
一旦1024×768でコーディングしているものを800×600に変更することを
先日求められました。簡単に変更できるようなWinAPIてあるものでしょうか。
あちこち捜したのですが結局たちあがり時点のページサイズを取得して、
XY位置と文字サイズを指定している全ての個所で変換部分を
挟み込む形で解決しました。
例えば 立ち上がり時 800×600の場合、800×600は自動取得できたとして
x=(x * 800)/1024;
y =(y * 600)/768;
mojisize = (m * 800)/1024;
となる訳です。
個所が多いので,手間が掛かって大変でした。
これを一つのWinAPIで解決方法があれば、助かるのですが。
UETA, Shin-ichi
2008-06-19 02:38:51 UTC
Permalink
こんにちは、植田です。
Post by unknown
一旦1024×768でコーディングしているものを800×600に変更することを
先日求められました。簡単に変更できるようなWinAPIてあるものでしょうか。
あちこち捜したのですが結局たちあがり時点のページサイズを取得して、
XY位置と文字サイズを指定している全ての個所で変換部分を
挟み込む形で解決しました。
それが妥当な解だと思いますよ。いわゆる「レイアウトマネージャ」に相当する
ものでしょうから、座標管理を統括するコンポーネントを内部的に持つと、より
エレガントな構造になるかもしれません。

たとえば、Windowsで普通に使われるダイアログボックスのテンプレートは、
コントロールの配置を文字セル単位(正確にはそれをもう少し細かくした単位)
の座標系で定義しており、設定されたフォントに合わせて実際の大きさを決定
するようになっています。

このテンプレートをうまく利用すれば目的を達成できるかもしれません。

とはいえ、GUI部品の配置はそのままで文字の大きさを変えて調節するよりも、
ウィンドウの大きさそのものを可変にして、それに合わせてGUI部品の位置や
大きさが変わるようなUIデザインの方が自然のような気がしなくもありませんね。

# もちろん、アプリケーション次第なので、一概には言えませんけど(苦笑)
Post by unknown
これを一つのWinAPIで解決方法があれば、助かるのですが。
テンプレート以外で考えられるとすれば、GDIのスケーリング機能をつかうこと
くらいですが、文字も含めた描画全体が縮小・拡大されるだけなので、必ずしも
期待するような結果にはならないかもしれません。
とくに文字の描画は、指定された大きさに最適化して描画されるわけではない
ので、つぶれたり、不恰好に見えたりする可能性が高くなります。
--
植田システム設計事務所
Ueta System Design Studio
http://www.usdesign.jp/
植田真一
mailto:***@usdesign.jp
unknown
2008-06-23 09:21:01 UTC
Permalink
いつもありがとうございます。
画面サイズの変更では、線と文字サイズの変更以外に
フォントサイズも画面サイズに合わせて同じ縮小拡大率で
行い、これはこれで成功したのですが、線の太さはめんどうなので
無視しました。色の対応はそのままです。
エレガントにやるにはとのことですが、
レイアウト、フォント、イメージで留意しまければならない点がやはりあるとかで
問題ありそうです。
 当分現行のやり方で進め、時期を見て テストしてみます。
ありがとうございました。

/**********************
堺市原山台
上田 恭平
E_Mail ***@sannet.ne.jp
***********************/

Continue reading on narkive:
Loading...