トップページ > 過去ログ > 記事閲覧
ウィンドウのサイズ変更について
名前:まさすけ 日時: 2010/02/18 22:08

はじめまして。 Windowsアプリは初心者でして 今回初めてDXライブラリを使用させていただきました。 VisualStudio2008Expressで下記リストのプログラムをビルドしてみたのですが、ウィンドウの右下をドラッグしてウィンドウサイズを変更した場合、ウィンドウ内の表示の描画倍率が変化しません。 ウィンドウのサイズがデフォルトの640x480より大きくなると、Windowsの元の画面の残骸がウィンドウ内に残ってしまう状況です。 ウィンドウのサイズに合わせて描画を変化させるためには何か他に指定が必要なのでしょうか? アドバイスをいただけるとありがたいです。 便乗の質問になりますが、ウィンドウのサイズがリサイズされた場合に、自動で拡大縮小されるのではなく能動的に描画を切り替えるためにウィンドウの描画領域のサイズを得る関数のようなものはあるのでしょうか?併せてご教授いただけるとありがたいです。 よろしくお願いいたします。 以下、リストです。 #include "DxLib.h" #include <process.h> int global_i ; void incliment(void *p){ while(1){ global_i ++ ; WaitVSync( 1 ) ; } } // プログラムは WinMain から始まります int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int i ; i=0 ; global_i = 0 ; ChangeWindowMode(TRUE); SetWindowSizeChangeEnableFlag( TRUE,TRUE ) ; SetDrawScreen(DX_SCREEN_BACK) ; SetAlwaysRunFlag( TRUE ) ; SetBackgroundColor( 0, 0, 60 ); if( DxLib_Init() == -1 ){return -1 ;} _beginthread( incliment,//スレッド関数のアドレス 0,//スタックサイズ。0でもよい NULL ); DrawPixel( 320 , 240 , 0xffffff ) ; // 点を打つ while(1){ i ++ ; ClearDrawScreen () ; DrawPixel( 320 , 240 , 0xffffff ) ; // 点を打つ clsDx() ; printfDx( "hello word %4d %4d \n",i,global_i) ; ScreenFlip() ; if( ProcessMessage() == -1 ){break ;} } DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 }

Page: 1 |

Re: ウィンドウのサイズ変更について ( No.1 )
名前:えう 日時:2010/02/19 00:56

DXライブラリのバージョンは最新ですか?
Re: ウィンドウのサイズ変更について ( No.2 )
名前:まさすけ 日時:2010/02/19 15:08

昨日ダウンロードした最新版だと思います。 解凍された「DxLib.txt」の出だしには「Ver 3.00f」と書いてありますが、 自己解凍ファイルの名前は「DxLib_VC3_01.exe」でしたので、 おそらくバージョンは「Ver3.01」ということではないかと思います。
Re: ウィンドウのサイズ変更について ( No.3 )
名前:まさすけ 日時:2010/02/19 16:25

この掲示板の「SetWindowSizeExtendRateの使い方」というスレッド ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1622 を読んで「もしや?」と思い ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1541 にある「DxLibVCTest.exe」のライブラリを上書きしてビルドしなおしたところ、ウィンドウサイズに合わせて描画内容も拡縮されるようになりました。 お騒がせしました。 ところで、 ウィンドウのサイズがリサイズされた場合にウィンドウの描画サイズを得る方法については引き続き情報募集中です。 よろしく御指南お願いいたします。
Re: ウィンドウのサイズ変更について ( No.4 )
名前:まさすけ 日時:2010/02/19 20:17

SetDrawScreen(DX_SCREEN_BACK) ; は DxLib_Init() より後でないとマズいみたいですね。 3.01と3.01aの違いではないかもしれません。 重ね重ね失礼しました。

Page: 1 |