glut opengl 怎样获得当前窗口的大小

glut opengl 怎样获得当前窗口的大小,第1张

请参考这个教程:>

这个问题,需要分几种情况考虑:

1 你要获取的窗体是规则窗体,标题栏是系统定义的,获取就简单了,直接使用 Windows API: GetSystemMetrics(SM_CYCAPTION); 就可以了。

2 如果你要获取的窗体是不规则的,那么就比较困难了,因为这个窗体的标题栏,很可能是自己画的,也就是说根本不是标题栏,而是某个控件模拟的,或者这个高度,要具体情况具体分析了。

因为每当窗口大小发生变化时windows就向窗口发送WM_SIZE消息,传给窗口过程的lParam参数的低位字中包含客户区的宽度;高位字中包含客户区的高度。所以可以在窗口过程中处理WM_SIZE消息:

static int cxClient,cyClient;

case WM_SIZE:

如果在窗体的内部写代码,直接用 thisWidth 和 thisHeight 获得窗体的高度和宽度

如果是在窗体外部,那么假设有from1 f = new form1(); 的定义,那么就用:fWidth 和 fHeight 获得窗体的高度和宽度。

注意,以上两个属性是包含边框的。如果要不包含边框,请使用窗体的ClientRectangle属性,具体做法是:

thisClientRectangleWidth 和 thisClientRectangleHeight

或者 fClientRectangleWidth 和 fClientRectangleHeight

以上获得的所有的单位都是像素

楼主想复杂了!给你说个简答的方法。

第一步:设置panle的属性Anchor 属性为None

第二步:点击布局工具栏上的 水平居中和垂直居中 按钮

后,保存工程

完了,运行一次你看看

不管你的窗体怎么变,panle都一直都会居中显示!就这样

在MFC中,View视图类窗口的大小有两个,一个是可视窗口大小,一个是逻辑窗口大小。

在没有滚动条的情况下,两个大小相同,使用GetClientRect就可以获取大小:

CRect rt;

GetClientRect(&rt);

需要注意的是,CScrollView这个视图类,在有滚动条的情况下,通过上述代码获取的是可视窗口大小,而不是完整窗口尺寸,完整窗口尺寸需要通过GetTotalSize函数获取:

CSize logicSize = GetTotalSize();// logical size

以上就是关于glut opengl 怎样获得当前窗口的大小全部的内容,包括:glut opengl 怎样获得当前窗口的大小、C#获取当前窗体的大小、C#获取窗体的标题栏大小,比如有个窗体,现在要获得它标题栏的高度。要怎么获取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9279797.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存