トップページ > 記事閲覧
ウインドウの見た目のみの縮小
名前:moti 日時: 2019/01/02 14:04

4:3のウインドウを作るときに, int DispX = GetSystemMetrics(SM_CXSCREEN); int DispY = GetSystemMetrics(SM_CYSCREEN); int WinMaxX = DispY * 3 / 4; int WinMaxY = DispY ; ChangeWindowMode(TRUE); // ウィンドウモードに設定 SetWindowSizeChangeEnableFlag(TRUE); でウインドウの最大サイズが分かるのですが, このWinMaxX WinMaxY を使って,最大サイズのウインドウで処理を裏で実行し, デスクトップに描画中の「サイズ可変ウインドウ(4:3)」に縮小して表示させる,という処理はどのようにしたら, うまくいきますか? また,サイズを変えたときに,絶対にしなくてはいけない処理はありますか? よろしくお願いします。m(_ _"m)
メンテ

Page: 1 |

Re: ウインドウの見た目のみの縮小 ( No.1 )
名前:管理人 日時:2019/01/02 15:30

SetDrawScreen の引数にすることができるグラフィックハンドルを作成できる MakeScreen を使用する方法が良いと思います #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int ScreenHandle ; int GrHandle ; int DispX = GetSystemMetrics(SM_CXSCREEN); int DispY = GetSystemMetrics(SM_CYSCREEN); int WinMaxX = DispY * 3 / 4; int WinMaxY = DispY ; ChangeWindowMode(TRUE); // ウィンドウモードに設定 SetWindowSizeChangeEnableFlag(TRUE); // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; // 描画する画像を読み込み GrHandle = LoadGraph( "Test1.bmp" ) ; // デスクトップと同じサイズの描画対象にできるグラフィックハンドルを作成 ScreenHandle = MakeScreen( WinMaxX, WinMaxY ) ; while( ProcessMessage() == 0 ) { // 描画先を仮画面に変更 SetDrawScreen( ScreenHandle ) ; // 画面をクリア ClearDrawScreen() ; // 画像を描画 DrawGraph( 100, 100, GrHandle, TRUE ) ; // 描画先を裏画面に変更 SetDrawScreen( DX_SCREEN_BACK ) ; // バイリニアフィルタリング設定に変更 SetDrawMode( DX_DRAWMODE_BILINEAR ) ; // 仮画面を縮小して描画 DrawExtendGraph( 0, 0, 640, 480, ScreenHandle, FALSE ) ; // 裏画面の内容を表画面に反映 ScreenFlip() ; } // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; } ↑こちらでは WinMaxX, WinMaxY と同じ大きさの仮の画面を MakeScreen で作成して、 描画はそのグラフィックハンドルに対して行い、最後に裏画面に DrawExtendGraph で 縮小して描画するということをしています
メンテ
Re: ウインドウの見た目のみの縮小 ( No.2 )
名前:moti(解決) 日時:2019/01/04 22:12

ありがとうございますm(_ _"m)
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存