使用GLUT使OpenGL窗口居中

bfnvny8b  于 2022-11-04  发布在  其他
关注(0)|答案(3)|浏览(220)

我有一个640x480的openGL窗口,我需要将其居中显示在屏幕中间。我以前使用过:

glutInitWindowPosition((GetSystemMetrics(SM_CXSCREEN)-640)/2,
                       (GetSystemMetrics(SM_CYSCREEN)-480)/2);

这是有效的。
但现在突然间当我编译时...

Linking...
1>Project1.obj : error LNK2028: unresolved token (0A000372) "extern "C" int __stdcall GetSystemMetrics(int)" (?GetSystemMetrics@@$$J14YGHH@Z) referenced in function "int __cdecl main(int,char * *)" (?main@@$$HYAHHPAPAD@Z)
1>Project1.obj : error LNK2019: unresolved external symbol "extern "C" int __stdcall GetSystemMetrics(int)" (?GetSystemMetrics@@$$J14YGHH@Z) referenced in function "int __cdecl main(int,char * *)" (?main@@$$HYAHHPAPAD@Z)
1>C:\Users\My Computer\Documents\School Stuff\CS445\Project1\Debug\Project1.exe : fatal error LNK1120: 2 unresolved externals

有人请帮助。这是非常恼人的和令人沮丧的我,因为我不知道很多关于OpenGL和GLUT。

gjmwrych

gjmwrych1#

此外,您也可以不链接user32.lib,而只使用glut:

glutGet(GLUT_SCREEN_WIDTH) // returns Screen width

glutGet(GLUT_SCREEN_HEIGHT) // returns Screen height

既然可以跨平台,为什么还要依赖Windows?
因此,您的代码看起来应该是:

glutInitWindowPosition((glutGet(GLUT_SCREEN_WIDTH)-640)/2,
                       (glutGet(GLUT_SCREEN_HEIGHT)-480)/2);
2uluyalo

2uluyalo2#

你需要确保你链接的是User32.lib,一个定义了GetSystemMetrics()的静态库。打开你的项目设置,确保User32.lib列在你链接的所有. lib中。

4xy9mtcn

4xy9mtcn3#

首先:谷氨酰胺初始化窗口大小(720,720);
其次:窗口初始化位置(600,200);
终于:glutCreateWindow(“OpenGL窗口”);

相关问题