Algorithm 如何确保重新调整大小不会';别打断我的GUI

Algorithm 如何确保重新调整大小不会';别打断我的GUI,algorithm,opengl,user-interface,Algorithm,Opengl,User Interface,我在这里和那里做了一些小游戏,GUI程序也是如此,但我似乎无法使事情变得更大。大多数GUI都能很好地处理大小调整,但这是如何实现的呢 假设我们有一个600x800的窗口,它的中心有一个100x100的盒子,上面还有一个相同的盒子200x。如果我将窗口拉伸到1280x720,什么算法可以确保在将按钮移动和重新调整到新分辨率时不会出现任何滑动 我希望这适用于“逐像素”显示,例如,在屏幕上绘制一个居中的四边形可以告诉您每个顶点在哪个像素,而不是OpenGL的默认矩阵等可伸缩的东西。您是使用Xwindo

我在这里和那里做了一些小游戏,GUI程序也是如此,但我似乎无法使事情变得更大。大多数GUI都能很好地处理大小调整,但这是如何实现的呢

假设我们有一个600x800的窗口,它的中心有一个100x100的盒子,上面还有一个相同的盒子200x。如果我将窗口拉伸到1280x720,什么算法可以确保在将按钮移动和重新调整到新分辨率时不会出现任何滑动


我希望这适用于“逐像素”显示,例如,在屏幕上绘制一个居中的四边形可以告诉您每个顶点在哪个像素,而不是OpenGL的默认矩阵等可伸缩的东西。

您是使用Xwindow、glWindow还是绘制自己的窗口?你也可以给我们看看你的代码。我说的是一般的GUI框架。但更具体地说是自定义框架,例如在OpenGL中绘制东西。没有通用的解决方案,每个框架都有自己的动态如果一个窗口在其边界上绘制了大量组件时会崩溃,那么从逻辑上讲,如果新窗口更大,则首先重新调整窗口的大小,如果新窗口较小,则首先重新调整组件的大小。我就是这样做的:将所有组件视为相对于窗口边框的点,因此,不是在中间有一个框,而是在0.5x和0.5y处有一个框,然后根据屏幕大小(100/1280x)类似地解释其大小。然后当你画图的时候,你把这些点乘以你想要的屏幕大小,所有的东西都会在任何屏幕大小的正确位置结束。如果您需要一些静态组件(您可能不希望缩放文本等),则需要根据您的需要对其进行巧妙的调整。指针:为所有窗口选择最小和最大大小。这不是很灵活