社区
VB基础类
帖子详情
分辨率问题
yhwang2003
2003-12-21 03:48:27
问题描述:
我在800*600的分辨率下用vb开发的一个软件.但当在分辨率1024*768下打开时窗体靠只在上角显示,靠右下方是空白.
我想问,用什么办法能让窗体随分辨率的变化,而不影响显示.
谢谢各位高手!!!
...全文
34
4
打赏
收藏
分辨率问题
问题描述: 我在800*600的分辨率下用vb开发的一个软件.但当在分辨率1024*768下打开时窗体靠只在上角显示,靠右下方是空白. 我想问,用什么办法能让窗体随分辨率的变化,而不影响显示. 谢谢各位高手!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
taosihai1only
2003-12-21
打赏
举报
回复
跟着rainstormmaster学习
rainstormmaster
2003-12-21
打赏
举报
回复
VB5.0 设计适应显示属性的界面
在 设 计 一 般 应 用 软 件 时, 总 希 望 设 计 的 软 件, 无 论 显 示 器 分 辨 率 设 置 是640X480, 800X600 还 是1024X768, 无 论 显 示 器 设 置 是 在 大 字 体 还 是 小 字 体 软 件 都 能 正 常 运 行, 并 且 有 美 观 一 致 的 界 面。 本 人 在 用VB5.0 设 计《英 语 集 成 训 练 系 统V2.0》时, 亦 遇 到 这 样 的 麻 烦。 下 面 解 释 克 服 这 一 问 题 的 方 法。
一: 使 界 面 居 中
为 了 使 界 面 元 素 能 在 各 种 显 示 分 辨 率 下 均 有 合 理 的 布 局, 一 种 方 法 就 是 获 取 当 前 显 示 分 辨 率, 然 后 根 据 这 一 分 辨 率 计 算 界 面 各 元 素 的 位 置 和 大 小, 并 进 行 设 置。 这 种 方 法 虽 然 能 解 决 界 面 元 素 布 局 问 题, 但 需 要 知 道 每 个 元 素 的 位 置 和 大 小, 程 序 烦 琐。
我 这 里 采 用 的 方 法 是: 首 先 设 计 一 个 具 有 极 大 化, 无 边 界, 无 标 题, 无 控 制 盒 的 窗 体, 然 后 在 其 上 放 置 一 个 容 器 控 件Picture, 在Picture 中 再 放 置 其 它 控 件。 在 窗 体Load 事 件 中 根 据 当 前 的 显 示 分 辨 率 居 中Picture, 从 而 实 现 了 居 中 整 个 界 面。 具 体 代 码 如 下:
Private Sub Form_Load()
Call CenterControl(Picture1)
End Sub
Public Sub CenterControl(obj As Object)
Dim cx, cy As Single
cx =(Screen.Width/Screen.
TwipsPerPixelX-obj.Width)/2#
cy =(Screen.Height/Screen.
TwipsPerPixelY-obj.Height)/2#
obj.Left = cx
obj.Top = cy
End Sub
二: 使 界 面 适 应 大 字 体 与 小 字 体
Win95 在 创 建 控 件 时, 会 根 据 当 前 显 示 属 性 为 大 字 体 或 小 字 体 来 作 相 应 调 整。 尽 管 应 用 程 序 传 送 的 参 数( 控 件 位 置 和 尺 寸) 是 一 致 的, 但 实 际 控 件 的 位 置 和 尺 寸 在 这 两 种 情 形 下 并 不 一 样。 如 果 应 用 程 序 仅 仅 考 虑 一 般 小 字 体 的 情 况, 在 大 字 体 下 界 面 则 十 分 难 看 混 乱, 甚 至 无 法 操 作。 为 解 决 这 一 问 题, 首 先 应 了 解 当 前 显 示 器 设 置, 这 可 通 过 系 统 注 册 表 来 获 取。 下 面 的 程 序 采 用 了 另 一 种 方 法: 首 先 在 一 个 映 射 模 式 为Pixel 的 窗 体 中 放 置 一 个 控 件, 在 显 示 属 性 为 小 字 体 的 设 计 环 境 下 首 先 看 一 下 控 件 的 初 始 位 置x,y, 然 后 在 窗 体 的Load 事 件 中 计 算 出X 和Y 方 向 的 放 大 比 例xFac,yFac:
Private Sub Form_Load()
xFac = 400# / mmlhwnd.Left
yFac = 400# / mmlhwnd.Top
End Sub
其 中,mmllhwnd 为 放 置 在 窗 体 中 的 控 件, 初 始 的 坐 标 为400,400。
最 后 在 各 个 需 要 调 整 界 面 的 窗 体Load 事 件 中 调 用 下 列 子 程 序, 调 整 各 控 件 的 位 置 与 大 小:
Public Sub CorrectForm(fm As Form)
Dim C As Control
For Each C In fm.Controls
If TypeOf C Is Timer Then
ElseIf TypeOf C Is CommonDialog Then
ElseIf TypeOf C Is Line Then
C.X1 = C.X1 * xFac
C.Y1 = C.Y1 * yFac
C.X2 = C.X2 * xFac
C.Y2 = C.Y2 * yFac
Else
C.Left = C.Left * xFac
C.Top = C.Top * yFac
If TypeOf C Is SSCommand Then
C.Width = C.Width * xFac
C.Height = C.Height * yFac
C.FontSize = C.FontSize * xFac
ElseIf TypeOf C Is CommandButton Then
C.Width = C.Width * xFac
C.Height = C.Height * yFac
C.FontSize = C.FontSize * xFac
ElseIf TypeOf C Is ListBox Then
C.Width = C.Width * xFac
C.Height = C.Height * yFac
C.FontSize = C.FontSize * xFac
ElseIf TypeOf C Is ComboBox Then
C.Width = C.Width * xFac
C.FontSize = C.FontSize * xFac
End If
End If
Next C
End Sub
上 述 程 序 中 仅 列 举 了 几 个 典 型 的 控 件, 如 果 窗 体 中 还 有 其 它 类 型 的 控 件, 仿 造 上 述 程 序 加 入 对 这 些 控 件 类 型 的 处 理 即 可
yhwang2003
2003-12-21
打赏
举报
回复
那窗体上的控件怎样调整呢
online
2003-12-21
打赏
举报
回复
1.找相关的resize控件
2.自己在form_resize事件中写
切换器改变Linux
分辨率
,KVM切换器屏幕
分辨率
问题
问题
描述:通过KVM切换器连接到显示器的笔记本电脑具有正确的屏幕...KVM切换器屏幕
分辨率
问题
我有一台Dell SX2210b显示器。我买了易趣KVM切换器:我的两个办公室的笔记本电脑是戴尔和具有Windows 7的下面是配置...
unity3D android游戏屏幕
分辨率
问题
android手机屏幕
分辨率
五花八门,导致开发时不好把握,还好各个引擎对这个屏幕
分辨率
问题
都有较好的处理方式;unity3D 也为我们提供了一个不错的解决方案。 在Unity3D 进行 android 游戏开发时,对于不同
分辨率
下的...
VNC Viewer 设置屏幕
分辨率
-解决屏幕
分辨率
问题
VNC Viewer 设置屏幕
分辨率
-解决屏幕
分辨率
问题
liunx桌面显示不全
分辨率
问题
xrandr 重启后需重新设置
分辨率
liunx桌面显示不全
分辨率
问题
xrandr 重启后需重新设置
分辨率
安装Ubuntu双系统遇到
分辨率
问题
安装Ubuntu双系统遇到
分辨率
问题
VB基础类
7,785
社区成员
197,585
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章