C++Builder 中大尺寸图象的显示技巧

原创 2002年02月01日 08:52:00

---- 在C++Builder 中 利 用TImage 控 件 可 以 轻 松 地 读 入 并 显 示 图 象, 但TImage 控 件 本 身 不 可 以 接 收 输 入 焦 点, 也 没 带 有 滚 动 条, 在 显 示 超 出 显 示 区 域 范 围 的 大 图 象 时, 需 要 对TImage 控 件 进 行 加 强。 本 文 提 出 两 种 最 容 易 实 现 且 有 效 的 方 法, 满 足 不 同 应 用 的 需 求。

---- 方 法 一: 增 加 滚 动 条。

---- 增 加 滚 动 条 可 以 通 过 将TImage 放 在TScrollBox 控 件 中 来 实 现。 步 骤 如 下:

---- (1)、 在 窗 体 中 放 置 一 个TScrollBox 控 件, 调 整 好 其 尺 寸。

---- (2)、 设 置TScrollBox 控 件 的AutoScroll 属 性 为True。

---- (3)、 在TScrollBox 控 件 是 放 置 一 个TImage 控 件。

---- (4)、 设 置TImage 控 件 的 属 性:AutoSize 为True,Left 为0,Top 为0。 经 以 上 增 强 之 后, 如 果TImage 的 图 象 比 显 示 窗 口 大, 滚 动 条 会 自 动 出 现, 如 果 图 象 小 于 显 示 窗 口, 滚 动 条 自 动 消 失, 实 现 了 大 图 象 的 浏 览。

---- 方 法 二: 图 象 漫 游。

---- 图 象 漫 游 是 指 不 用 滚 动 条, 通 过 键 盘 或 者 鼠 标 控 制 图 象 的 移 动, 从 而 在 较 小 的 显 示 区 域 内 可 以 浏 览 图 象 的 任 何 部 分。 下 面 以 鼠 标 控 制 为 例 说 明。

---- (1)、 在 窗 体 中 放 置 一 个TPanel 控 件, 调 整 好 其 尺 寸。

---- (2)、 在TPanel 控 件 是 放 置 一 个TImage 控 件。

---- (3)、 设 置TImage 控 件 的AutoSize 属 性 为True,Left 属 性 为0,Top 属 性 为0。

---- (4)、 在TForm1 的 类 定 义 中 加 两 个 私 有 变 量: int iX0,iY0;

---- (5)、 响 应TImage 控 件 的OnMouseDown 和OnMouseMove 事 件。

void __fastcall TForm1::Image1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
   iX0 = X;
   iY0 = Y;
}

void __fastcall TForm1::Image1MouseMove
(TObject *Sender, TShiftState Shift, int X, int Y)
{
   int iDeltaX, iDeltaY;
   if(Shift.Contains(ssLeft))
   {
      iDeltaX = X - iX0;
      iDeltaY = Y- iY0;
      if(iDeltaY)
Image1->Left += iDeltaX;
      if(iDeltaY)
        Image1->Top += iDeltaY;
   }
}
 

---- (6)、 运 行 时 按 住 鼠 标 左 键 拖 动, 图 象 将 跟 随 移 动。

---- (7)、 如 果 通 过 键 盘 控 制, 只 需 参 考 鼠 标 控 制 的 代 码, 加 入 键 盘 控 制 即 可。

---- (8)、 实 际 应 用 时, 根 据 需 要 加 入 边 界 限 制, 保 证 图 象 不 会 被 移 出 显 示 区 域 之 外。

---- 以 上 两 种 方 法 在 本 人 开 发 的 软 件 当 中 多 次 应 用, 效 果 很 好。

C++Builder中大尺寸图象的显示技巧

在C++Builder中利用TImage控件可以轻松地读入并显示图象,但TImage 控件本身不可以接收输入焦点,也没带有滚动条,在显示超出显示区域范围的大图象时,需要对TImage控件进行加强。本文...
  • daofengdeba
  • daofengdeba
  • 2013年09月11日 14:34
  • 1398

C++Builder中大尺寸图象的显示技巧

在C++Builder中利用TImage控件可以轻松地读入并显示图象,但TImage 控件本身不可以接收输入焦点,也没带有滚动条,在显示超出显示区域范围的大图象时,需要对TImage控件进行加强。本文...
  • m13286282
  • m13286282
  • 2015年02月02日 16:47
  • 424

android分辨率与尺寸适配,UI切图方法

1.android怎样做适配 第一图片资源的适配 一般图片资源文件下包含下列五个图片资源文件夹drawable-xxhdpi,drawable-xhdpi,drawable-hdpi,drawab...
  • dahongwudi
  • dahongwudi
  • 2015年01月27日 16:04
  • 2718

Bitblt函数(API)祥解

Bitblt作用将某一内存块的数据传送到另一内存块,前一内存块被称为”源”,后一内存块被称为”目标”图象程序开发者使用Blit的函数在内存中将某页面上的一幅位图经过一定的变换转移到另一个页面上 原形...
  • u011100345
  • u011100345
  • 2017年03月21日 11:41
  • 92

VC++中bmp图象的显示

前段时间想用VC的对话框来动态地显示一副BMP位图,查了很多篇文章发现都写的很复杂(而且貌似许多都是复制粘贴而来),真正有价值的不多.其实VC显示BMP文件是很方便的,所有的代码加在一起也不过五六行而...
  • u012252959
  • u012252959
  • 2017年03月22日 19:23
  • 683

在C++ Builder中打开浏览器加载页面

今天在开发项目的时候,要求实现根据数据查询出来的一个IP地址,并返回到前台使用浏览器打开。这个东东本身很简单哈。在C++ Builder 中有对应的API函数,下面我们一起来讲讲: 调用外部命令...
  • sevenkj
  • sevenkj
  • 2014年10月29日 09:59
  • 1174

根据屏幕的尺寸决定图片的显示大小

在app中我们一般都会下载图片,那么我们如何决定图片的大小呢,给图片固定一样的高度、宽度是不合理的,那么我们需要根据屏幕的尺寸来决定图片的大小。首先,我们需要计算屏幕尺寸,我们可以写一个工具类,用的时...
  • uniquemei
  • uniquemei
  • 2017年02月20日 14:18
  • 634

C++Builder 高级编程技巧

1. C++ Builder 网上资源     C++ Builder 研究     http://www.ccrun.com/     C++ Builder 程序员     htt...
  • gateway6143
  • gateway6143
  • 2014年11月21日 10:54
  • 1081

c++ builder 子窗口长期前置

【Write by wood 小汤——http://blog.csdn.net/tbwood  转载请说明出处,写下来不容易】 要真正的理解和解决这个问题,确实不容易。当我花了好几天时间才搞明白...
  • shang2468
  • shang2468
  • 2013年11月22日 13:36
  • 1791

5分种理解,液晶显示器成像原理,液晶屏图像显示矩阵原理

液晶屏图像显示矩阵原理 出处:郝铭博客  2011-07-14  责编:glen 文本标签:液晶屏 矩阵 原理 图像 显示 ...
  • samxx8
  • samxx8
  • 2014年01月14日 11:49
  • 11439
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++Builder 中大尺寸图象的显示技巧
举报原因:
原因补充:

(最多只允许输入30个字)