Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;重新启动应用程序或重新运行';winapi main';_C++_Winapi - Fatal编程技术网

C++ C++;重新启动应用程序或重新运行';winapi main';

C++ C++;重新启动应用程序或重新运行';winapi main';,c++,winapi,C++,Winapi,我正在制作一个程序,希望在有人试图调整屏幕大小时重新启动我的程序 到目前为止,我还没有在互联网上搜索,我发现不可能用代码“重新运行你的应用程序” 每个人都提到关闭并重新运行它,但这不是我想要的,我希望代码能够做到这一点 所以我在想,我可以不重新运行winmain吗?并在代码中“杀死”当前winmain实例,但保持“shell(应用程序?)”处于活动状态 这就是我想做的: LRESULT回调过程(HWND-HWND,UINT消息,WPARAM-WPARAM,LPARAM-LPARAM) { 开关(

我正在制作一个程序,希望在有人试图调整屏幕大小时重新启动我的程序

到目前为止,我还没有在互联网上搜索,我发现不可能用代码“重新运行你的应用程序”

每个人都提到关闭并重新运行它,但这不是我想要的,我希望代码能够做到这一点

所以我在想,我可以不重新运行winmain吗?并在代码中“杀死”当前winmain实例,但保持“shell(应用程序?)”处于活动状态

这就是我想做的:

LRESULT回调过程(HWND-HWND,UINT消息,WPARAM-WPARAM,LPARAM-LPARAM)
{
开关(信息)
{
case WM_SIZE://检查窗口是否已调整大小
WinMain(this,this,this,NULL);
//或者重新启动应用程序代码。
打破
案例WM_PAINT://我们需要画画?让我们画画吧!
if(绘图界面)
渲染(真实);
其他的
渲染(假);
打破
案例WM_创建:
返回dwmextendframeintoclienterea(hWnd,&pMargin);//将窗口框架扩展到客户端区域
打破
案例WM_销毁:
PostQuitMessage(0);//我们需要使用它退出消息循环
打破
违约:
返回DefWindowProc(hWnd,Message,wParam,lParam);//确保所有消息都已处理
打破
}
}

请查看WM_SIZE下的代码:这就是我试图做的,但我不知道如何正确执行此操作,以及如何关闭以前的winmain。

由于窗口已调整大小而重新启动应用程序是非常烦人的行为!你想惹恼正在使用你的程序的人吗?你有充分的理由吗?每个其他程序都不需要这样做…看起来是这样的。重新启动应用程序的原因是,它是窗口应用程序上的覆盖,一旦它调整大小,“从directx(3d)绘制”不会重新绘制,我已经让它知道要绘制/重新绘制,但我无法让它以正确的清晰方式重新绘制,因此,由于它是一个现有的3d应用程序,我只想重新启动应用程序本身,因为它主要用作“社区版主”工具。你不能仅仅通过递归调用你认为是应用程序入口点的东西来启动程序的新副本。如果要重新启动应用程序,则需要重新启动应用程序。虽然如果你询问你试图解决的真正问题,你会得到更好的反馈。请记住,C++标准禁止显式调用主()。这对于winmain来说可能也是如此。也就是说,我同意@MikeCAT的说法,这闻起来像是XY问题。因为窗口大小调整而重新启动应用程序是非常烦人的行为!你想惹恼正在使用你的程序的人吗?你有充分的理由吗?每个其他程序都不需要这样做…看起来是这样的。重新启动应用程序的原因是,它是窗口应用程序上的覆盖,一旦它调整大小,“从directx(3d)绘制”不会重新绘制,我已经让它知道要绘制/重新绘制,但我无法让它以正确的清晰方式重新绘制,因此,由于它是一个现有的3d应用程序,我只想重新启动应用程序本身,因为它主要用作“社区版主”工具。你不能仅仅通过递归调用你认为是应用程序入口点的东西来启动程序的新副本。如果要重新启动应用程序,则需要重新启动应用程序。虽然如果你询问你试图解决的真正问题,你会得到更好的反馈。请记住,C++标准禁止显式调用主()。这对于winmain来说可能也是如此。也就是说,我同意@MikeCAT的说法,这闻起来像是XY问题。