繁体   English   中英

中心 OpenGL window 与 GLUT

[英]Center an OpenGL window with GLUT

我有一个 openGL window 是 640x480,我需要在屏幕中间居中。 我以前用过:

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 了解不多。

另外,不是链接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);

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

首先:glutInitWindowSize(720, 720);

其次:glutInitWindowPosition(600, 200);

最后:glutCreateWindow("OpenGL 窗口");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM