c++ - Glut:如何知道窗口何时移动?

标签 c++ mfc window glut

我有一个过剩的问题,我想要一个回调来知道用户何时移动我的应用程序的窗口,但我没有在过剩中发现任何东西。

我的目标是只在 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/

相关文章:

c++ - 模板化友元函数查找

c++ - 文件 basic_socket.hpp 中的 lib boost asio 1.47.0 出错

c++ - boost.test header 之间的区别

C# 获取焦点窗口?

c++ - 复制构造函数中的类型

c++ - 每次更改文本时,CStatic 都不会失效

c++ - 如何检查条目是否为数字,包括 float

c++ - 无法在 MFC 中的 CFile 中设置只读属性?

javascript - window.onload延迟

android - 如何使用用于数据插入的 EditText 字段创建简单的 Android studio 弹出窗口