元のご質問を拝見しますと
「ゲーム画面のウィンドウをユーザーの任意のサイズに変更できるようにしたい」とのことですね、
それでしたらプロージャを自作していただかなくても可能です
( ウインドウのサイズが可変の DxLibModelViewer.exe もDXライブラリで作成していますが
独自のプロージャは使用していませんので )
SetWindowSizeChangeEnableFlag を使用してウインドウのサイズを変更できるようにしても
SetGraphMode で指定したサイズ以上にウインドウを大きくすることができないのですが、
GetDefaultState で取得できるデスクトップのサイズを SetGraphMode に設定することで
( デスクトップのサイズ内なら )自由にウインドウのサイズを変更することができるようになります
以前作成したウインドウのサイズに合わせて白いボックスが上下・左右で跳ね回る
プログラムがありましたので、よろしければご覧ください
#include "DxLib.h"
// 初期サイズ
#define INIT_SCREEN_W (640)
#define INIT_SCREEN_H (480)
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int x, xadd ;
int y, yadd ;
int DesktopW, DesktopH ;
int WindowW, WindowH ;
// ウインドウモードで起動
ChangeWindowMode( TRUE );
// 最大化ボタンが存在するウインドウモードに変更
SetWindowStyleMode( 7 ) ;
// 画面サイズをデスクトップのサイズと同じにする
GetDefaultState( &DesktopW, &DesktopH, NULL ) ;
SetGraphMode( DesktopW, DesktopH, 32 ) ;
// サイズ変更を可能にする
SetWindowSizeChangeEnableFlag( TRUE, FALSE ) ;
// ウインドウサイズはゲーム画面と一致させる
SetWindowSize( INIT_SCREEN_W, INIT_SCREEN_H ) ;
// ウインドウの位置は画面中心付近にする
SetWindowPosition( ( DesktopW - INIT_SCREEN_W ) / 2, ( DesktopH - INIT_SCREEN_H ) / 2 ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1 ;
// ウインドウサイズ情報の初期化
GetWindowSize( &WindowW, &WindowH ) ;
// 描画先を裏画面にする
SetDrawScreen( DX_SCREEN_BACK ) ;
// メインループ
x = 0 ;
xadd = 8 ;
y = 0 ;
yadd = 8 ;
while( ProcessMessage() == 0 )
{
// ウインドウのクライアント領域を取得する
GetWindowSize( &WindowW, &WindowH ) ;
// 移動( ウインドウの端で移動方向が反転する )
x += xadd ;
if( ( xadd > 0 && x > WindowW ) ||
( xadd < 0 && x < 0 ) )
{
xadd = -xadd;
}
y += yadd ;
if( ( yadd > 0 && y > WindowH ) ||
( yadd < 0 && y < 0 ) )
{
yadd = -yadd;
}
// 画面のクリア
ClearDrawScreen() ;
// 箱の描画
DrawBox( x, 0, x + 32, 32, GetColor( 255,255,255 ), TRUE ) ;
DrawBox( 0, y, 32, y + 32, GetColor( 255,255,255 ), TRUE ) ;
// 裏画面の内容を表画面に反映
ScreenFlip() ;
}
// DXライブラリの後始末
DxLib_End() ;
// ソフトの終了
return 0 ;
}