使用 VS6 C++ GUI 编辑器、MFC 以屏幕(像素)为单位调整全屏窗口大小?
Posted
技术标签:
【中文标题】使用 VS6 C++ GUI 编辑器、MFC 以屏幕(像素)为单位调整全屏窗口大小?【英文标题】:Full-screen window sizing in screen (pixel) units with VS6 C++ GUI editor, MFC? 【发布时间】:2009-07-06 21:13:09 【问题描述】:我正在尝试创建一个包含许多控件的全屏控制面板窗口:按钮、滑块、列表框等。
我可以创建一个对话框窗口并向其添加控件,但所有内容都以对话框为单位进行缩放。我只想在 GUI 编辑器中创建一个以像素为单位的窗口,而不是像对话框单位这样的派生单位。
我可以在 GUI 编辑器中布置所有控件,然后使用 SetWindowPos 以编程方式将窗口大小调整为全屏,但 GUI 编辑器中的对话框窗口看起来与最终产品不同。我希望它在 GUI 编辑器中是所见即所得的。
这是运行 XP 的小型专用仪器控制计算机的前端。 SDK 是用 MFC 编写的。我必须经常添加和更改控件。屏幕很小,7" @ 800 x 600,所以我当然是在另一台计算机上开发程序。我不想在更换显示器时改变程序窗口——我希望它固定在 800 x 600,我希望控件的大小和布局也固定。
一定有办法——这比默认功能更基本。
谢谢。
【问题讨论】:
【参考方案1】:对话框单元基于对话框使用的字体属性。一个水平对话单元等于当前字体平均宽度的 1/4。
垂直对话单元等于当前字体平均字符高度的 1/8。
我建议使用method 2(用于 4 x 8 对话框的 MapDialogRect())来确定输出显示器上有多少个 800x600 对应的 DLU,然后制作一个等于该大小的参考表单。您可以稍后在设计时使用该参考表单。
p.s.-我很高兴 Visual Studio 不再强调对话单元,因为它们总是很难处理。
【讨论】:
【参考方案2】:谢谢。我可以通过在 GUI 编辑器中一遍又一遍地手动调整表单的大小直到它完全填满屏幕来制作参考表单……不要开玩笑,对话框单元很痛苦。根据您的回复,我猜在当前的 Visual Studio 中有更好的方法来做到这一点? (这是我第一次接触 Windows 编程)。
【讨论】:
以上是关于使用 VS6 C++ GUI 编辑器、MFC 以屏幕(像素)为单位调整全屏窗口大小?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 VS2008 中的 C++ MFC 对话框中的日期/时间小部件中提取数据