⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vb16.htm

📁 从太平洋上下载下来的打包学习VB的教程。 》VB专区 ·Visual Basic 的数据库编程 ·使用VB建立Web Server   ·VB与Windows资源管理器互拷文件
💻 HTM
📖 第 1 页 / 共 2 页
字号:
      >Projects” 创 建 一 新 项 目APPIMG.VBP, 在FORM 窗 口 中 创 
      建PictureBox、CommandButton、HScroll、VScroll 等 对 象, 调 整 各 自 位 置, 并 设 置 各 对 象 
      的 属 性 如 下: </SPAN><PRE><SPAN class=sfont>
Form:Name = AppImage,  ScaleMode = 1
PictureBox:Name = ImageWin, Appearance = 1-3D, ScaleMode = 3
CommandButton:Name = ZoomIn, Caption="Zoom In"
CommandButton:Name = ZoomOut, Caption="Zoom Out"
CommandButton:Name = ExitButton, Caption="Exit"
</SPAN></PRE>
      <P><SPAN class=sfont><FONT color=#ffffff>----</FONT> 2. 双 击FORM 窗 口, 并 将 下 
      面 程 序 输 入 到Form 对 象 的Load 事 件 中。 该 程 序 用 于 读 取 图 像 的 宽 度 和 高 度, 初 始 化 常 用 
      参 数, 载 入 窗 口 图 像, 并 将 图 像 复 制 到FORM 窗 口 的PictureBox 图 形 控 件 容 器 中 显 示。 
      </SPAN><PRE><SPAN class=sfont>
Private Sub Form_Load()
   Dim FileName As String
   FileName = "C:\SAMP.BMP"
   Open FileName For Binary As #1
   Get #1, 19, ImageWidth: Get #1, , ImageHeight
 '读取位图的宽度和高度
   Close #1
   DW = 15 * ImageWidth - ImageWin.Width
  '将像点转换为Twip(微点)
   DH = 15 * ImageHeight - ImageWin.Height
   ImageWin.Width = 15 * ImageWidth
   ImageWin.Height = 15 * ImageHeight
   AppImage.AutoRedraw = True
   AppImage.Caption = FileName 
 '改变Form窗标题
   HScroll1.SmallChange = 100 
  '设置滚动最小步距
   VScroll1.SmallChange = 100
   DX = ImageWin.Width: DY = ImageWin.Height  
'设置复制图像尺寸
   SX = ImageWin.Width: SY = ImageWin.Height
   AMP = 1  '设置缩放比例为1
   sWin = GetDesktopWindow() 
 '获取桌面窗口句柄
   sDC = GetDC(sWin)
   '转换为描述表句柄
   hd = BitBlt(ImageWin.hdc, 0, 0, Image.Width,
 Image.Height, sDC, 0, 0, &amp;HCC0020)
   hd = ReleaseDC(sWin, sDC)  '释放窗口描述表
   AppImage.ImageWin = LoadPicture(FileName) 
'载入图像显示
End Sub
</SPAN></PRE>
      <P><SPAN class=sfont><FONT color=#ffffff>----</FONT> 3. 在General 对 象 
      的Declaration 过 程 中 声 明 本 程 序 所 使 用 的WIN95 API 函 数 和 和 过 程, 以 及 各 事 件 程 序 所 
      使 用 的 全 局 变 量 等。 </SPAN><PRE><SPAN class=sfont>
Private Declare Function BitBlt Lib "gdi32"
 (ByVal hDestDC As Long, ByVal X As Long, 
ByVal Y As Long, ByVal nWidth As Long, ByVal 
nHeight As Long, ByVal hSrcDC As Long, 
ByVal xSrc As Long, ByVal ySrc As Long, 
ByVal dwRop As Long) As Long
Private Declare Function GetDC Lib "user32"
 (ByVal hwnd As Long) As Long
Private Declare Function 
GetDesktopWindow Lib "user32" () As Long
Private Declare Function ReleaseDC Lib "user32" 
(ByVal hwnd As Long, ByVal hdc As Long) As Long
Dim sWin, sDC, hd
Dim ImageWidth As Long, ImageHeight As Long
Dim DX, DY, SX, SY, PX, PY, DW, DH, MX, MY, X0, Y0, AMP
</SPAN></PRE>
      <P><SPAN class=sfont><FONT color=#ffffff>----</FONT> 4. 双 击ImageWin 对 象, 并 
      在MouseMove 事 件 和Mouse_down 事 件 中 输 入 下 面 程 序, 用 于 窗 口 图 形 的 拖 动 滚 动 处 理。 
      </SPAN><PRE><SPAN class=sfont>
Private Sub ImageWin_MouseMove(Button As Integer, 
Shift As Integer, X As Single, Y As Single)
   If (Button And vbLeftButton) &gt; 0 Then 
   '拖动鼠标滚动图像
      MX = HScroll1.Value + (X - X0)
      MY = VScroll1.Value + (Y - Y0)
      If MX &gt; 0 And MX &lt; HScroll1.Max Then HScroll1.Value = MX
      If MY &gt; 0 And MY &lt; VScroll1.Max Then VScroll1.Value = MY
   End If
End Sub
Private Sub ImageWin_MouseDown(Button As Integer, 
Shift As Integer, X As Single, Y As Single)
    X0 = X: Y0 = Y   '拖动鼠标初值
End Sub
</SPAN></PRE>
      <P><SPAN class=sfont><FONT color=#ffffff>----</FONT> 5. 在ZoomIn 控 件 
      和ZoomOut 的Click 事 件 中 输 入 下 列 程 序, 对 窗 口 图 像 进 行 放 大、 缩 小 处 理。 </SPAN><PRE><SPAN class=sfont>
Private Sub ZoonIn_Click()
  If AMP &lt; 5 Then AMP = 2 * AMP
  '放大系数小于5,则放大图像
  AppImage.ImageWin.PaintPicture ImageWin.Image,
 0, 0, AMP * DX, AMP * DY, PX, PY, SX, SY
End Sub
Private Sub ZoomOut_Click()
  AppImage.ImageWin.Cls
  '清除窗口图像
  If AMP &gt; 0.25 Then AMP = AMP / 2
  '放大系数大于0.25,则缩小图像
  AppImage.ImageWin.PaintPicture 
ImageWin.Image, 0, 0, AMP * DX, AMP * DY, PX, PY, SX, SY
End Sub
</SPAN></PRE>
      <P><SPAN class=sfont><FONT color=#ffffff>----</FONT> 6. 在HScroll 控 件 
      和VScroll 控 件 的Change 事 件 中 输 入 下 面 程 序, 对 窗 口 图 像 进 行 滚 动 处 理。 </SPAN><PRE><SPAN class=sfont>
Private Sub HScroll1_Change()
   PX = HScroll1.Value * DW / HScroll1.Max
  '计算水平滚动位置
   AppImage.ImageWin.PaintPicture ImageWin.Image, 
0, 0, AMP * DX, AMP * DY, PX, PY, SX, SY
End Sub
Private Sub VScroll1_Change()
   PY = VScroll1.Value * DH / VScroll1.Max
   '计算垂直滚动位置
   AppImage.ImageWin.PaintPicture ImageWin.Image, 
0, 0, AMP * DX, AMP * DY, PX, PY, SX, SY
End Sub
</SPAN></PRE>
      <P><SPAN class=sfont><FONT color=#ffffff>----</FONT> 7. 在ExitButton 控 件 
      的Click 事 件 中 输 入 下 面 程 序, 用 于 结 束 程 序、 关 闭 窗 口。 </SPAN><PRE><SPAN class=sfont>
Private Sub ExitButton_Click()
   End
End Sub
</SPAN></PRE>
      <P><SPAN class=sfont><FONT color=#ffffff>----</FONT> <B>五、 应 用 说 明</B> 
      </SPAN>
      <P><SPAN class=sfont><FONT color=#ffffff>----</FONT> 窗 口 图 像 滚 动 是 各 种 数 据 
      查 询 系 统、 多 媒 体 图 形 数 据 库 系 统 开 发 中 的 基 本 功 能 之 一, 本 文 用Windows API 函 数 实 现 
      了 窗 口 图 像 缩 放、 滚 动, 该 方 法 可 适 用 于Visual C++ 等 语 言。 本 文 全 部 程 序 均 在WIN98 环 
      境 中Visual Basic 5.0 下 调 试 通 过</SPAN>。 
      <P align=right><A 
      href="http://www.pconline.com.cn/experience/subject/VB/index.html">----更多的文章</A></P>
      <P align=right>&nbsp; <!-- #EndEditable --></P></TD></TR></TBODY></TABLE>
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 width=760>
  <TBODY>
  <TR>
    <TD bgColor=#666666 width=1><IMG height=1 src="vb16.files/blank.gif" 
      width=1></TD>
    <TD align=right vAlign=bottom width=170><IMG height=10 
      src="vb16.files/blank.gif" width=170><BR></TD>
    <TD bgColor=#666666 width=1><IMG height=1 src="vb16.files/blank.gif" 
      width=1></TD>
    <TD width=21><IMG height=1 src="vb16.files/blank.gif" width=21></TD>
    <TD bgColor=#eeeeee width=566><IMG height=10 src="vb16.files/blank.gif" 
      width=566><BR>版权所有&copy;1999 太平洋电脑信息网<BR><FONT 
      face="Arial, Helvetica, sans-serif"><A 
      href="mailto:exp@pconline.com.cn">exp@pconline.com.cn</A></FONT> <IMG 
      height=1 src="vb16.files/hhvisit.html" width=1> </TD></TR></TBODY></TABLE><!-- #EndTemplate --></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -