MFC窗口自适应大小(在其它环境运行)

李水云 2018-04-16 09:04:13
编写了一个窗口随分辨率大小变化的MFC程序,在换一台没安装相关软件的电脑上运行时效果与理想不一致,应该是下面两个语句不执行造成的。
GetSystemMetrics(SM_CXFULLSCREEN)
GetSystemMetrics(SM_CYFULLSCREEN)
...全文
925 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
李水云 2018-04-19
  • 打赏
  • 举报
回复
引用 11 楼 worldy 的回复:
[quote=引用 10 楼 qq_34210705 的回复:] 谢谢各位大神,问题已解决。 改为以下就没问题。 float int cx=GetSystemMetrics(SM_CXFULLSCREEN) float int cy=GetSystemMetrics(SM_CYFULLSCREEN) 应该是放大指针fsp为小数,前后必须一致。
还有float int 这种类型? [/quote] 多打了int 就是float和int转换问题。
worldy 2018-04-18
  • 打赏
  • 举报
回复
引用 10 楼 qq_34210705 的回复:
谢谢各位大神,问题已解决。 改为以下就没问题。 float int cx=GetSystemMetrics(SM_CXFULLSCREEN) float int cy=GetSystemMetrics(SM_CYFULLSCREEN) 应该是放大指针fsp为小数,前后必须一致。
还有float int 这种类型?
李水云 2018-04-17
  • 打赏
  • 举报
回复
发现所有与屏幕尺寸相关的参数只要不设置为固定值(即使是从配置文件中读取也不行),用软件生成的.exe文件打开就会出问题。
待续_1006 2018-04-17
  • 打赏
  • 举报
回复
GetSystemMetrics(SM_CXFULLSCREEN) GetSystemMetrics(SM_CYFULLSCREEN) 现在日志中确认是不是这个函数是否执行,以及获取的数据是否正确吧
zgl7903 2018-04-17
  • 打赏
  • 举报
回复
李水云 2018-04-17
  • 打赏
  • 举报
回复
谢谢各位大神,问题已解决。 改为以下就没问题。 float int cx=GetSystemMetrics(SM_CXFULLSCREEN) float int cy=GetSystemMetrics(SM_CYFULLSCREEN) 应该是放大指针fsp为小数,前后必须一致。
赵4老师 2018-04-16
  • 打赏
  • 举报
回复
百度搜“关于Windows高DPI的一些简单总结 - 厚积薄发”
schlafenhamster 2018-04-16
  • 打赏
  • 举报
回复
使用 利用GetDeviceCaps函数 试试! HDC hScrDC, hMemDC; // 屏幕分辨率 int xScrn, yScrn; //为屏幕创建设备描述表 hScrDC = CreateDC(_T("DISPLAY"), NULL, NULL, NULL); // 获得屏幕分辨率 xScrn = GetDeviceCaps(hScrDC, HORZRES); yScrn = GetDeviceCaps(hScrDC, VERTRES);
李水云 2018-04-16
  • 打赏
  • 举报
回复
看了Windows高DPI的一些简单总结 - 厚积薄发,的确是这个问题。但作为小白,里面的说明完全没法拿来用,能不能给个简单详细的源码啊。
worldy 2018-04-16
  • 打赏
  • 举报
回复
GetSystemMetrics(SM_CXFULLSCREEN) GetSystemMetrics(SM_CYFULLSCREEN) 应该会执行. 你可以加入日记,将关键的运行数据写入到日记文件中,查看运行后,你怀疑的值其值是否和设想的一致
oyljerry 2018-04-16
  • 打赏
  • 举报
回复
先看看窗口大小获取是不是有问题。然后等比例调整等
MFC自定义界面HUI,高效简单,含详细注释和示例。 HUI包括基本控件、按钮、标签、编辑框、表格、悬停提示等,可组合出更多功能。资源占用少,效率高,能在低端机上运行,流畅不闪烁,完全满足工控等各种专业软件实现个性化要求。 本资源是“http://download.csdn.net/detail/hhhh63/6961889”的正式发布版。包括3个项目,Hui、HuiDemo1和HuiDemo2。 一、Hui项目 本项目是DLL项目,包括完整的界面库,使用双缓存,局部重画等技术,性能优异。为保证在不同的MFC版本中使用,本次上传提供了这部分的源码,一般不要对其改动。 二、HuiDemo1 简单的应用示例,包括窗口分割,控制面板和主显示区等,展示控件各方向停靠、自动充满、全屏切换、记忆窗口位置和大小、选项设置和保存注册表等功能,用户可直接以此为基础开发新项目。如需扩展其它功能,可从HuiDemo2查找复制相应代码。 三、HuiDemo2 除HuiDemo1的所有功能外,还包括界面库的全部功能和其它实用扩展功能,左中右三栏式分布,左右固定宽度,中间栏大小可变。 1、左边是属性栏,固定宽度,上边是时钟,下边是鼠标信息,当鼠标移到中间的图像区时显示鼠标位置和图像值。 2、中间是图像区,演示如何动态生存索引图像,从下向上移动,自适应大小,长宽比不变,点右边的调色板按钮改变颜色,点保存按钮把当前图像保存到桌面。 3、右边上边是控制栏,在中间的图像区中画各种几何图形,并计算几何图形包围的图像数据的最大值,最小值和平均值。 4、右边下边是表格演示,显示Windows文件夹下的文件列表,自动充满窗口区,随窗口大小改变显示项数,保证界面美观,最下面是搜索和定位功能。 四、运行环境,VC2010或更高版本。 欢迎大家下载并提意见,本资源版权归作者所有,分享供大家研究学心,不得用于商业用途,如有特殊要求请与本人联系。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧