トップページ > 過去ログ > 記事閲覧
ウィンドウのサイズ変更について
名前:PIK 日時: 2008/10/09 07:25

SetWindowSizeChangeEnableFlag のように右下をドラッグしてリサイズしたいのですが、 前述の関数のように内部の描画領域を一定に保たず画面の解像度そのものを変更したいのですが。 10*10の画像を描画している場合ウィンドウを縮めても伸ばしても描画されてる画像はウィンドウの大きさに比例せずに一定で描画されてほしいのです。 何か良い方法は無いでしょうか?

Page: 1 |

Re: ウィンドウのサイズ変更について ( No.1 )
名前:Will 日時:2008/10/09 10:25

やったことはありませんが、Windowsサイズの変更メッセージ(WM_SIZE)をキャッチして、 SetGraphModeで解像度を変えれば実現は出来そうな気はします。 しかし、SetGraphModeを実行すると画像のロードをやり直さなくてはならなくなるため 実用には耐えないような気がします。
Re: ウィンドウのサイズ変更について ( No.2 )
名前:PIK 日時:2008/10/09 15:20

返答ありがとう御座います。 やはりSetGraphModeは極力使いたくないのが本音ですね・・・。 実装が手間ですし何よりリサイズを行うたびに画像関係全てを再ロードをしなければならず恐らく目的のパフォーマンスが出なくなります。 画面解像度のみを変更できるような関数が在れば良いのですけど探しても適したものが見つからずなんともいえない状況です。。。
Re: ウィンドウのサイズ変更について ( No.3 )
名前:管理人 日時:2008/10/14 04:15

現時点でのバージョンでは対応する手段が無かったので機能を追加しました。 よろしければこちらのバージョンをダウンロードしてください。 http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) SetWindowSizeChangeEnableFlag 関数に引数を追加しました。 // ウインドウのサイズを変更できるかどうかのフラグをセットする // NotFitScreen : ウインドウのクライアント領域に画面をフィットさせる(拡大させる)かどうか // TRUE:フィットさせる FALSE:フィットさせない int SetWindowSizeChangeEnableFlag( int Flag, int FitScreen ) ; 追加した引数は FitScreen で、意味は注釈の通りです。 デフォルトでは TRUE になっていますので、FALSE にすることでウインドウの クライアント領域のサイズが変化しても画面のスケーリングは変化しないようになります。 宜しければお使いください。
Re: ウィンドウのサイズ変更について ( No.4 )
名前:PIK 日時:2008/10/15 00:55

わざわざ機能追加までしていただきありがとう御座います。 期待通りの動作が出来ました。 ただ、初期に設定した画面サイズ以上には拡大できないようですがこれは仕様ということでしょうか? (最初に大きめにウィンドウを生成すれば個人的には問題ないのですけど一応気になったので。
Re: ウィンドウのサイズ変更について ( No.5 )
名前:管理人 日時:2008/10/25 17:14

はい、仕様です この機能はDXライブラリが作成する描画用スクリーンの デスクトップへ転送する領域を制限しているだけですので、 ライブラリが作成する描画用スクリーンのサイズ以上に デスクトップ上のウインドウのサイズを広げられるようにして しまうとそこに転送すべき画像が無くなってしまうのです。

Page: 1 |