?? 20000726011.htm
字號:
<HTML>
<HEAD>
<TITLE>大尺寸圖象的顯示技巧</TITLE>
<META content="Microsoft FrontPage 4.0" name=GENERATOR>
</HEAD>
<BODY>
<div align="center">
<table width="744" border="0" cellspacing="0" cellpadding="0" height="76">
<tr>
<td>
<p align="center"><strong><big><font size="3"><br>
C++Builder中</font></big><font size="3">大尺寸圖象的顯示技巧</font></strong></p>
<p align="left">在C++Builder中利用TImage控件可以輕松地讀入并顯示圖象,但TImage
控件本身不可以接收輸入焦點,也沒帶有滾動條,在顯示超出顯示區(qū)域范圍的大
圖象時,需要對TImage控件進(jìn)行加強。本文提出兩種最容易實現(xiàn)且有效的方法,滿
足不同應(yīng)用的需求。 <br>
<br>
方法一:增加滾動條。 <br>
<br>
增加滾動條可以通過將TImage放在TScrollBox控件中來實現(xiàn)。步驟如下: <br>
(1)、在窗體中放置一個TScrollBox控件,調(diào)整好其尺寸。 <br>
(2)、設(shè)置TScrollBox控件的AutoScroll屬性為True。 <br>
(3)、在TScrollBox控件是放置一個TImage控件。 <br>
(4)、設(shè)置TImage控件的屬性:AutoSize為True,Left為0,Top為0。經(jīng)以上增強之
后,如果TImage的圖象比顯示窗口大,滾動條會自動出現(xiàn),如果圖象小于顯示窗口,
滾動條自動消失,實現(xiàn)了大圖象的瀏覽。 <br>
<br>
方法二:圖象漫游。 <br>
<br>
圖象漫游是指不用滾動條,通過鍵盤或者鼠標(biāo)控制圖象的移動,從而在較小的顯
示區(qū)域內(nèi)可以瀏覽圖象的任何部分。下面以鼠標(biāo)控制為例說明。 <br>
(1)、在窗體中放置一個TPanel控件,調(diào)整好其尺寸。 <br>
(2)、在TPanel控件是放置一個TImage控件。 <br>
(3)、設(shè)置TImage控件的AutoSize屬性為True,Left屬性為0,Top屬性為0。 <br>
(4)、在TForm1的類定義中加兩個私有變量:intiX0,iY0; <br>
(5)、響應(yīng)TImage控件的OnMouseDown和OnMouseMove事件。 <br>
<br>
void__fastcallTForm1::Image1MouseDown(TObject*Sender,<br>
TMouseButtonButton,TShiftStateShift,intX,intY)<br>
{<br>
iX0=X;<br>
iY0=Y;<br>
}<br>
<br>
void__fastcallTForm1::Image1MouseMove<br>
(TObject*Sender,TShiftStateShift,intX,intY)<br>
{<br>
intiDeltaX,iDeltaY;<br>
if(Shift.Contains(ssLeft))<br>
{<br>
iDeltaX=X-iX0;<br>
iDeltaY=Y-iY0;<br>
if(iDeltaY)<br>
Image1->Left+=iDeltaX;<br>
if(iDeltaY)<br>
Image1->Top+=iDeltaY;<br>
}<br>
}<br>
<br>
(6)、運行時按住鼠標(biāo)左鍵拖動,圖象將跟隨移動。 <br>
(7)、如果通過鍵盤控制,只需參考鼠標(biāo)控制的代碼,加入鍵盤控制即可。 <br>
(8)、實際應(yīng)用時,根據(jù)需要加入邊界限制,保證圖象不會被移出顯示區(qū)域之外。 <br>
<br>
以上兩種方法在本人開發(fā)的軟件當(dāng)中多次應(yīng)用,效果很好。</p>
</td>
</tr>
</table>
</div>
</BODY></HTML>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -