ご返信いただきありがとうございます
すみません、以下一度載せた物を、その後色々分かって手直ししましたので大幅に修正しました<(_ _)>
-----------------------------------------------------------------------------------------------
SetWindowLongPtr(64bitの場合はSetWindowLongPtrにするようで、念のためこちらにしました)を使う方法に変えて
望みの動作が得られました。ありがとうございます<(_ _)>
結果以下のプログラムになり、手元の環境では問題ないのですが、最大化のタイミングで
SetWindowSizeChangeEnableFlag(FALSE);はwindows10以外での起動を考えると必要でしょうか?
(※これを使うと位置が変更され、元に戻す必要がありますので一瞬メインに表示される格好悪さがあります)
その他、もし明らかな間違いがあればご指摘いただけると有難いです。
いつもすみません、よろしくお願いいたします<(_ _)>
--------------------------------------------------------------------------------------------------------------
#include "DxLib.h"
int WIN_X=1920,WIN_Y=1080;
void WInMx(int on)
{
static int px=0,py=0;
if(on==1)
{
GetWindowPosition( &px,&py );
SetWindowLongPtr( GetMainWindowHandle(), GWL_EXSTYLE , WS_EX_TOOLWINDOW ) ;
SetWindowLongPtr( GetMainWindowHandle(), GWL_STYLE , WS_POPUP | WS_SYSMENU | WS_VISIBLE ) ;
SetWindowPos( GetMainWindowHandle(), NULL, 0, 0, 0, 0, (SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER|SWP_FRAMECHANGED) );
//SetWindowStyleMode(4);
//SetWindowPosition(px,py);
ShowWindow( GetMainWindowHandle(), SW_MAXIMIZE );
}
else if(on==0)
{
ShowWindow( GetMainWindowHandle(), SW_RESTORE ); SetWindowSize( WIN_X*0.8,WIN_Y*0.8 );
SetWindowLongPtr( GetMainWindowHandle(), GWL_EXSTYLE , WS_EX_LEFT ) ;
SetWindowLongPtr( GetMainWindowHandle(), GWL_STYLE , WS_OVERLAPPEDWINDOW | WS_VISIBLE ) ;
SetWindowPos( GetMainWindowHandle(), NULL, 0, 0, 0, 0, (SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER|SWP_FRAMECHANGED) );
//SetWindowStyleMode(7);
SetWindowPosition(px,py);//なぜかたまに主モニタに移動するので念のため必要;
}
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode( TRUE );SetAlwaysRunFlag( TRUE ) ;
SetGraphMode(WIN_X,WIN_Y,16); SetWindowSize( WIN_X*0.8,WIN_Y*0.8 ) ;
if( DxLib_Init() < 0 ) return -1;
SetWindowSizeChangeEnableFlag(TRUE);
SetWindowStyleMode(7);
int wx=0,wy=0,mxmz=0;RECT recDisplay;int px=0,py=0;
while( ProcessMessage() == 0 )
{
GetWindowSize(&wx,&wy);
if(mxmz==0&&wx>WIN_X*0.9&&wx>WIN_Y*0.9)
{
mxmz=1;WInMx(1);
}
if(mxmz==1&&CheckHitKey(KEY_INPUT_C))
{
mxmz=0;WInMx(0);
}
ClearDrawScreen();DrawBox(10,10,WIN_X-10,WIN_Y-10,GetColor(255,0,0),1);
DrawFormatString( 10,250,GetColor(255,255,255),"px(%d) py(%d)",(int)px,(int)py);
ScreenFlip();
}
DxLib_End();
return 0;
}