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 で
縮小して描画するということをしています