|
 |
推荐文章 |
|
|
|
|
|
|
|
|
|
|
| 作者:本站收集 日期:2005-8-4 11:35:34 |
|
|
一、 用 控 件 拖 放 表 单
---- 怎 样 用 控 件 拖 放 表 单 呢 ? 很 简 单, 将 这 段 代
码 插 入 到Declare 部 分。
Declare Function ReleaseCapture Lib "user32" () As Long
Declare Function SendMessage Lib "user32" Alias
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam
As Long, lParam As Any) As Long
再 在 控 制 的Mousedown 事 件 中 插 入:
Sub Command1_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As
Single)
Dim Ret&
ReleaseCapture
Ret& = SendMessage(Me.hWnd, &H112, &HF012, 0)
End Sub
二、 把 表 单 放 在 屏 幕 的 正 中 央
---- 在 开 发VB 程 序 时, 一 般 希 望 将 表 单 放 在 屏 幕
可 利 用 区 域 的 正 中 央, 实 现 上 可 以 利 用Move
(Screen.Width - Width) \ 2, (Screen.Height - Height) \ 2 的 方 法 来 实
现。 但 是 当 用 户 使 用Windows 95 或 NT 操 作 系 统 时, 在
屏 幕 的 底 端 会 有 一 任 务 条, 上 述 的 实 现 方 法 并
未 考 虑 该 任 务 条 所 占 的 空 间, 表 单 实 际 并 未 处
于 屏 幕 可 利 用 区 域 的 正 中 央。 下 面 的 代 码 段 实
现 了 在 每 次 启 动 应 用 程 序 时, 无 论 屏 幕 是 否 有
任 务 条, 表 单 都 会 处 于 屏 幕 可 利 用 区 域 的 正 中
央。 在 工 程 中 增 添 一 模 块, 在 模 块 中 加 上 如 下
的 代 码:
Option Explicit
Private Const SPI_GETWORKAREA = 48
Private Declare Function SystemParametersInfo& Lib "User32" Alias
"SystemParametersInfoA" (ByVal uAction As Long,ByVal uParam As Long,
lpvParam As Any, ByVal fuWinIni As Long)
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Public Function CenterForm32 (frm As Form)
Dim ScreenWidth&, ScreenHeight&, ScreenLeft&, ScreenTop&
Dim DesktopArea As RECT
Call SystemParametersInfo (SPI_GETWORKAREA, 0, DesktopArea, 0)
ScreenHeight = (DesktopArea.Bottom - DesktopArea.Top) * Screen.TwipsPerPixelY
ScreenWidth = (DesktopArea.Right - DesktopArea.Left) * Screen.TwipsPerPixelX
ScreenLeft = DesktopArea.Left * Screen.TwipsPerPixelX
ScreenTop = DesktopArea.Top * Screen.TwipsPerPixelY
frm.Move (ScreenWidth - frm.Width)\ 2 + ScreenLeft, (ScreenHeight - frm.Height)
\ 2 + ScreenTop
End Function
---- 要 调 用CenterForm32 函 数, 可 在 表 单 的Load 事 件 中 增
添 代 码CenterForm32 Me 即 可。 以 上 代 码 在VB4/32,VB5 中 实
现。
三、 在RichTextBox 控 件 中 实 现 上、 下 标 形 式
---- VB 提 供 了 一 个 优 秀 的 控 件RichTextBox, 我 们 可 以
在 其 中 实 现 文 本 的 各 种 编 辑 方 式。 下 面 的 程 序
是 在RichTextBox 控 件 中 实 现 上 标 和 下 标 的 形 式, 主
要 是 使 作 为 上、 下 标 的 字 符 的 尺 寸 小 一 些, 位
置 在 基 线 上 下 浮 动。 程 序 利 用 属 性SelCharOffset, 由
它 确 定RichTextBox 控 件 中 的 文 本 是 出 现 在 基 线 上(
正 常 状 态), 当SelCharOffset >0 时, 文 本 出 现 在 基 线
之 上, 成 为 上 标 形 式;
---- 当SelCharOffset< 0 时, 文 本 出 现 在 基 线 之 下, 成
为 下 标 形 式。
---- 该 属 性 在 设 计 时 无 效。
---- 在 表 单 的Load 事 件 中 添 加 以 下 代 码:
Private Sub Form_Load()
RichTextBox1.Font.Name = "Times New Roman"
RichTextBox1.Font.Size = 10
RichTextBox1.Text = "H2SO4"
' Move the numbers down 2 points.
OffsetRichText RichTextBox1, 1, 1, 2
OffsetRichText RichTextBox1, 4, 1, -2
End Sub
Private Sub OffsetRichText(box As RichTextBox, start As Integer, length As
Integer, offset As Integer)
'box指RichTextBox控件;start指作为上下标的
'字符的起始位置;length指上下标字符的长度;
'offset指上标还是下标,大于0上标;小于0下标。
box.SelStart = start
box.SelLength = length
box.SelFontSize = box.Font.Size -abs(offset)
box.SelCharOffset = ScaleY(offset,vbPoints, vbTwips)
box.SelStart = 0
box.SelLength = 0
End Sub
该程序在VB4/32和VB5上调试通过。最后在RichTextBox
控件中字符串的形式为:H2SO4. |
|
|
|
|
|
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
|
|
|
|
|
责任编辑: 原点 |
投稿作者: 本站收集 |
|
|
信息来源: 网络 |
录入时间: 2005-8-4 11:35:34 |
|
|
|
| |
|