我有一个过剩的问题,我想要一个回调来知道用户何时移动我的应用程序的窗口,但我没有在过剩中发现任何东西。
我的目标是只在 Windows 上制作一个应用程序,是否可以使用 MFC 保留我的过剩代码来做到这一点?
提前致谢
最佳答案
我找不到回调函数,但您可以使用 glutGet
手动完成:
int glutGet(GLenum state);
您可能会做的一个例子是:
bool window_change(void)
{
int init_x = glutGet(GLUT_INIT_WINDOW_X);
int init_y = glutGet(GLUT_INIT_WINDOW_Y);
int pos_x = glutGet(GLUT_WINDOW_X);
int pos_y = glutGet(GLUT_WINDOW_Y);
return (init_x != pos_x || init_y != pos_y);
}
如果它从初始位置移动,这将返回 true。如果您想查看自上次检查以来它是否移动过,请尝试:
bool window_change(void)
{
static int init_x = glutGet(GLUT_INIT_WINDOW_X);
static int init_y = glutGet(GLUT_INIT_WINDOW_Y);
int pos_x = glutGet(GLUT_WINDOW_X);
int pos_y = glutGet(GLUT_WINDOW_Y);
bool result = init_x != pos_x || init_y != pos_y;
init_x = pos_x;
init_y = pos_y;
return result;
}
您可以使用函数设置窗口位置:glutPositionWindow
void glutPositionWindow(int x, int y);
关于c++ - Glut:如何知道窗口何时移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1561409/