PowerBuilder+Kodak Image Edit Control實現圖片鼠標拖動、放大效果
Posted on 2007-04-11 17:21 在路上... 閱讀(2096) 評論(0) 編輯 收藏 所屬分類: PowerBuilderPowerBuilder在顯示圖片方面的確是一個弱項,以前一直沒有找到好的方法,如果自己用delphi寫個ActiveX控件,在關閉的時候總會出現錯誤,實在是很郁悶,后來發現Kodak Image Edit Control就沒有這個問題,而且可以支持BMP,DCX,GIF,JPG-JFIF,PCX,TIFF,WIFF,XIF等常見的圖片格式,該控件在win98,win2000等環境中都已經安裝好了,對于XP環境也可以簡單的從Win2000移植過來。
1、鼠標放大、縮小效果
在OLE控件的other事件中加入下面的代碼
如果不想選擇框老是出現的話,需要加入
ole_1.object.SelectionRectangle = False
1、鼠標放大、縮小效果
在OLE控件的other事件中加入下面的代碼
1
Choose Case Message.Number
2
Case 522
3
if IntHigh(message.wordparm) = 120 then //鼠標滾輪向上
4
if int(ole_1.object.zoom)<=20 then return
5
ole_1.object.zoom= ole_1.object.zoom -10
6
else
7
ole_1.object.zoom= ole_1.object.zoom+10
8
end if
9
ole_1.object.display()
10
End Choose
2、鼠標拖動效果
2

3

4

5

6

7

8

9

10

如果不想選擇框老是出現的話,需要加入
ole_1.object.SelectionRectangle = False
1
//1.定義Instance變量
2
int mousex,mousey
3
int moveon
以下代碼屬于OLE控件的事件
2

3

1
//Event MouseDown事件
2
moveon=1
3
mousex=ocx_x
4
mousey=ocx_y

2

3

4

1
//MouseMove事件
2
if moveon=0 then return
3
ole_1.object.ScrollPositionX =ole_1.object.ScrollPositionX+(MouseX -ocx_x)
4
ole_1.object.ScrollPositionY =ole_1.object.ScrollPositionY+(MouseY -ocx_y)
5
ole_1.object.refresh()
6
mousex=ocx_x
7
mousey=ocx_y

2

3

4

5

6

7

1
//mouseUp事件
2
moveon=0

2
