你用原生的api BOOL GetClientRect( HWND hWnd,LPRECT lpRect); 不用MFC的试试看呢?用 GetForegroundWindow 获取前端窗口句柄。
窗口每OnSize一次,获取一次它的大小,与程序启动时的大小做比较,算出其比例,调用自定义函数,在自定义函数中获取每个控件的大小GetDlgItem(IDC_XXX)->GetWindowRect(&rc);
然后把每个控件进行按比例缩放,使用MoveWindow函数
各函数具体用法请查msdn
在MFC中,View视图类窗口的大小有两个,一个是可视窗口大小,一个是逻辑窗口大小。
在没有滚动条的情况下,两个大小相同,使用GetClientRect就可以获取大小:
CRect rt;GetClientRect(&rt);
需要注意的是,CScrollView这个视图类,在有滚动条的情况下,通过上述代码获取的是可视窗口大小,而不是完整窗口尺寸,完整窗口尺寸需要通过GetTotalSize函数获取:
CSize logicSize = GetTotalSize();// logical size以上就是关于VC中如何获得活动窗口的大小信息全部的内容,包括:VC中如何获得活动窗口的大小信息、在vc和mfc下,如何能使windows窗体在放大缩小时,窗体中的控件也可同时放大或缩小、vc++编程:在MFC单文档编程中如何获取view类窗口的大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)