用VB设计能适应各种显示属性的界面

用VB设计能适应各种显示属性的界面 (加入时间:2001-1-22) 
  作者:
转自: vb爱好者

---- 在 设 计 一 般 应 用 软 件 时, 总 希 望 设 计 的 软 件, 无 论 显 示 器 分 辨 率 设 置 是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

---- 上 述 程 序 中 仅 列 举 了 几 个 典 型 的 控 件, 如 果 窗 体 中 还 有 其 它 类 型 的 控 件, 仿 造 上 述 程 序 加 入 对 这 些 控 件 类 型 的 处 理 即 可。
阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
VB设计显示界面时,可以采用以下步骤来进行设计: 1. 确定界面的整体布局:首先,需要确定界面的整体布局,包括界面的大小、位置和分区等,可以使用VB提供的拖拽、调整和排列控件的功能来完成。 2. 添加控件:根据界面的需求,选择合适的控件来实现功能。例如,如果需要显示文本信息,可以使用标签(Label)控件或文本框(TextBox)控件;如果需要显示图像,可以使用图片框(PictureBox)控件;如果需要提供选择选项,可以使用复选框(CheckBox)或单选钮(RadioButton)等控件。可以通过在工具箱中选择相应的控件,然后在界面上拖拽放置来添加控件。 3. 自定义控件属性:根据需求,对添加的控件进行自定义。例如,可以设置控件的字体、颜色、大小、对齐方式等属性,以及控件的事件处理程序等。 4. 调整控件位置和大小:可以通过调整控件的位置和大小来使界面更加美观和合理。在VB中,可以使用鼠标拖动控件来移动其位置,也可以通过属性窗口来设置控件的位置和大小。 5. 设计界面交互:根据界面的需求,添加相应的代码来实现界面的交互功能。例如,可以通过按钮(Button)控件的Click事件来触发相应的操作,或使用文本框(TextBox)控件的TextChanged事件来响应用户输入。 6. 运行和测试界面:在设计界面完成后,可以点击运行按钮来查看界面的效果,或者使用调试功能来测试界面和功能的运行是否正常。 总之,在VB设计显示界面需要综合考虑界面布局、控件选择、属性设置、位置调整和交互设计等方面,通过灵活运用VB提供的功能和方法来实现所需的界面效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

smallxia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值