初めまして、Rounzと申します。
リファレンスに載っていない関数の質問で恐縮なのですが、
よくわからない挙動をして困ったので質問させていただきます。
'DxLib_Init'の前に'SetWindowStyleMode(2)'を呼び出し、
途中でSetWindowStyleMode(0)などで変えようとすると反映されません。
ですが、そのあとに'SetWindowStyleMode(2)'を呼び出し、
'SetWindowStyleMode(0)'を呼び出すと反映されますのですがクライアント領域のサイズが維持されません。
(SetWindowSizeを呼び出しても変わりませんでした)
環境:
DXライブラリ Ver3.22c
Windows10 ( Build 19043 )
Visual Studio 2019
以下、検証用のソースコードです
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
int Count = 0;
ChangeWindowMode(TRUE);
SetWindowStyleMode(2);
if (DxLib_Init() == -1) {
return -1;
}
SetWindowSize(640, 480);
SetDrawScreen(DX_SCREEN_BACK);
while (ProcessMessage() == 0 && ClearDrawScreen() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0) {
switch (Count) {
case 300:
SetWindowStyleMode(0);
printfDx("Test Mode=0\n");
break;
case 600:
SetWindowStyleMode(2);
printfDx("Test Mode=2\n");
//SetWindowSize(640, 480);
break;
case 900:
SetWindowStyleMode(0);
printfDx("Test Mode=0\n");
//SetWindowSize(640, 480);
break;
}
//ランダムに点を打つ
for (int i = 0; i < 100; i++) {
DrawPixel(GetRand(640), GetRand(480), GetColor(255, 255, 255));
}
DrawFormatString(200, 0, GetColor(255, 255, 255), "%d", Count);
Count++;
ScreenFlip();
}
DxLib_End();
return 0;
}
よろしくお願いします。