社区
Windows客户端开发
帖子详情
VC的对话框设计和WM上实际运行的对话框差距非常大
DanielWYO
2010-03-09 02:48:08
我使用的是VS2005.
在VC中拉一个按钮, 控制好大小, 到了WM上实际运行, 发现位置和大小差距非常大.
而如果拉一个图片, 图片却是正常的.
结果, 窗口设计的功能, 有和没有几乎没有差别了, 因为很多东西要不停的猜测位置, 不停的调.
请问一下, 是不是在VS中设置, 有什么选项, 使得VC中拉一个按钮, 在WM中就是如此设计的呢?
...全文
295
13
打赏
收藏
VC的对话框设计和WM上实际运行的对话框差距非常大
我使用的是VS2005. 在VC中拉一个按钮, 控制好大小, 到了WM上实际运行, 发现位置和大小差距非常大. 而如果拉一个图片, 图片却是正常的. 结果, 窗口设计的功能, 有和没有几乎没有差别了, 因为很多东西要不停的猜测位置, 不停的调. 请问一下, 是不是在VS中设置, 有什么选项, 使得VC中拉一个按钮, 在WM中就是如此设计的呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DanielWYO
2010-03-26
打赏
举报
回复
虽然我自己纯粹使用手动调了. 但是这个的解决办法我也找到了.
就是强制把窗口的字体设置为"新宋体" 字号为6.
等到界面设计完成之后, 再修改为其它所需要的字体.
烂番
2010-03-18
打赏
举报
回复
在窗体属性“Font”里选择实际运行时使用的字体名及size
之后,窗体大小、控件位置都是严格1:1的了,只不过这时资源管理器里显示的效果可能就比较别扭了
如果没有相对应的字体就比较麻烦了
当控件个数达一定规模时,直接在资源管理器里做出精确的界面,肯定是最高效的
程老师2088
2010-03-17
打赏
举报
回复
有没有人做界面的教一下我啊
peng_qi2008
2010-03-16
打赏
举报
回复
setwindowspos调啊
用代码实现位置,单纯的使用RC 不精确,窗口容易变化
st_cruze
2010-03-15
打赏
举报
回复
还是动态创建的方便准确一些,拖拽出来的很容易出现位置不准的情况,而且在不同品牌的mobile手机上也可能会出现很严重的漂移现象
sevenzhy
2010-03-12
打赏
举报
回复
呵呵~ 一般对话框还是用rc方便点,基本上调一调就可以确定合适的大小。
如果控件多的话,movewindow 即繁琐又降低效率.
sevenzhy
2010-03-12
打赏
举报
回复
[Quote=引用 7 楼 danielwyo 的回复:]
MoveWindow不会太麻烦的.
我做了一个INI, 里面记录了各个控件位置.
封装了一个函数, 里面读取INI文件中设定好的位置, 然后批量MoveWindow.
to sevenzhy:
你可以试试看里面既有图片, 又有普通按钮, 就会发现, 这个调, 几乎是不可能的, 累死人.
[/Quote]
呵呵~ 不错不错~ 集思广益~ 其实有些功夫到头来还是得下的~~
你这个方法我记下了~ 可以参考参考。
谢啦
DanielWYO
2010-03-12
打赏
举报
回复
MoveWindow不会太麻烦的.
我做了一个INI, 里面记录了各个控件位置.
封装了一个函数, 里面读取INI文件中设定好的位置, 然后批量MoveWindow.
to sevenzhy:
你可以试试看里面既有图片, 又有普通按钮, 就会发现, 这个调, 几乎是不可能的, 累死人.
DanielWYO
2010-03-09
打赏
举报
回复
可能是有一个比例系数, 不过这个比例系数又对图形控件无效的, 图形控件多大结果就多大, 不会有拉伸比例. 所以这点很诡异, 控件多了, 让界面会看起来很乱.
还有, 这个比率倒不是从界面设计器到RC这一步做的, 我比较过RC, RC文件还是严格按照界面设计器上的设计来的, 没有拉伸什么的.
现在我已经完全放弃了使用RC文件来控制对话框中控件的位置了, 而是在代码中使用MoveWindow来做, 这样还靠谱一点, 通过界面设计器来做界面, 太不靠谱了.
sevenzhy
2010-03-09
打赏
举报
回复
从资源编辑器的视图到设备视图,据说这里存在一个比例系数呢。
具体忘了,在外文网站看到的,不过好像也只是经验来的。
我的建议是,手工定制对话框资源,即编辑.rc文件,直接设定对话框的大小,以及各控件的大小和位置。
如果你的程序有多个对话框的话,直接编辑.rc文件可以很方便的统一你的对话框和控件风格。
基本上你试验过几次就能确定你的对话框设置为多大刚好能占据窗口,控件如何摆放比较美观了。
另外,在设备上实际显示的对话框和控件的大小和位置,你还可以在程序中进行MoveWindow()调整嘛。
儿大不由爷
2010-03-09
打赏
举报
回复
这个控件的位置和系统使用的字体还有关系,所以最好不要依赖资源管理器中设置的位置。
DanielWYO
2010-03-09
打赏
举报
回复
嗯. 刚刚我忙乎了半天.
发现这个倒不是VC本身的问题, 从VC的界面设计器到对应的资源文件这一部, 确实是按部就班的按照具体的对应来的.
关键在编译的时候, 编译好的程序, 并不是按照资源文件中的描述来的, 而是有所拉伸, 当然, 类似于图片类型的资源是不会拉伸, 结果, 一些控件会自动拉伸, 一些不会, 所以界面完全混乱了. 甚至还不如自己在代码中手动控制.
不过我还是认为这里可能会有一个选项来控制. 就是不知道这个会是什么样的选项.
世外涛缘
2010-03-09
打赏
举报
回复
对VC的支持是不太好。
不过可以将对话框预先设置为240×320,这样调起来能省事点。
看看还有没有谁有更好的办法。
MFC实战教程:用计算器项目掌握消息映射与
对话框
编程
MFC是Windows界面编程的经典框架,而计算器项目恰好覆盖了其最核心的知识点:
对话框
设计
、消息映射、控件交互、CString字符串处理等。理解消息映射机制是打通界面与逻辑的关键,按钮点击如何路由到处理函数、控件ID如何规划,这些都是桌面应用开发的通用基础。计算器虽小,却可拆分为单步运算和表达式解析两种实现,从状态机
设计
到中缀转后缀算法,涵盖软件工程中常用的数据结构和状态管理思路。在
实际
开发中还会遇到Unicode字符集转换、
运行
库依赖、除零保护等工程落地的常见坑位,解决这些问题能显著提升调试与发布能力。
C++与MFC实战:从零构建桌面万年历应用
本文详细阐述基于C++与MFC构建Windows桌面万年历应用的完整流程,涵盖MFC
对话框
项目搭建、公历/农历核心算法封装(含蔡勒公式、节气节假日计算)、自定义控件GDI绘图实现月视图、日程数据模型
设计
与文件持久化、深色模式与右键菜单等UI优化,以及Unicode字符集配置、MFC动态库部署和常见编译调试问题解决方案。
VC
++全面CHM中文教程:系统化Windows C++开发指南
本教程系统化构建面向现代学习者与维护者的Windows C++开发离线参考手册,聚焦
VC
++(MS
VC
)编译器特性、Win32 API核心机制、MFC框架原理、COM/ATL集成及调试部署工程实践。内容强调历史兼容性与现代C++最佳实践的平衡,采用Markdown→HTML→CHM工具链,支持多版本VS适配与真实可
运行
示例,并提供中文本地化、离线专注学习与遗留系统维护支持。
Visual C++ 1.5 MSDN原版:1993年C++开发环境的考古与实测
在Windows现代开发体系成熟之前,C++开发者曾经历过一段从16位向32位过渡的关键时期。Visual C++作为微软早期主力的C++开发工具,其1.5版本不仅承载着MFC类库与OLE 2.0的早期形态,更引入了通过Win32s在Windows 3.1上
运行
32位程序的能力。这一代工具链的编译方式、
运行
库分发模式,直接影响了后来Visual C++
运行
库的演化路径,也解释了今天Windows系统中为何存在多个版本的Redistributable。通过对Visual C++ 1.5 MSDN原版光盘的安装
WTL嵌入式开发实战:Windows CE轻量UI
设计
与优化
本文聚焦WTL在Windows CE嵌入式平台的工业级UI开发实践,涵盖WTL相较于MFC和.NET Compact Framework的底层优势、VS2005+PB5.0+WTL7.5工具链搭建、触摸校准、高效列表控件、双缓冲绘图引擎等核心模块实现,并深入剖析CE环境下句柄泄漏、字体缺失、电源唤醒失活、CAB部署等产线真实问题及解决方案,强调其在资源受限场景下原生Win32性能与编译期优化价值。
Windows客户端开发
7,655
社区成员
18,839
社区内容
发帖
与我相关
我的任务
Windows客户端开发
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
复制链接
扫一扫
分享
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章