如何在Timage中显示一个图片,用getdc这个API函数获得这个控件的句柄好像不对啊..(100分)

  • 主题发起人 主题发起人 netnice
  • 开始时间 开始时间
N

netnice

Unregistered / Unconfirmed
GUEST, unregistred user!
请教高手...

有加密的图像,所以不能直接load
外部有一个ocx提供接口
obj.drawimage(hdc:integer,pImage:integer);
//pImage是加密图像文件的二进制流首地址..
//hdc就是显示区的句柄了.

我想把这个图显示在一个timage控件里,,,但这个hdc参数总是不对..

这两个好像都不行
timage1.picture.bitmap.canvas.handle
timage1.canvas.handle

但如果我传入
frmMain.canvas.Handle
窗口的图像句柄,,就可以显示到窗体上...
timage和窗体不一样???该如何搞定啊???

用getdc如何获得这个timage控件的显示句柄??
??


谢谢...
[:(!]
 
?问题说的不清楚?
?问题说的不清楚?
 
Timage的父是TGraphicControl,所以他们没有句柄,不能接受输入焦点。
 
那我该如何把这个图像显示出来呢???
用什么控件可以啊??
 
用panel或animate控件试试
 
刚才用paintbox测试通过,,只是这个控件不能自动对图像进行缩放啊...

象timage就可以设置stretch属性来拉伸图像...

可不可先把这个图像画到一个隐藏的paintbox,,,然后在用delphi提供的canvas.copyrect来复制到timage中呢??
 
HDC是DC的句柄,直接给Canvas当然是不行的。
DC是什么“设备上下文”(什么怪名字嘛,M$老干这种事),Canvas是对DC的封装,类型
不一样啦

既然可以画到Paintbox中,那问题就算解决了呀,应该可以CopyRect了
 
我先画到paintbox,然后再copyrect到timage中,,但图像变得很差...原来是灰度的图片,,copyrect后象黑白的一样..很难看..

 
先设置一下宽、高试试
Img.Picture.Bitmap.Width := ...;
Img.Picture.Bitmap.Height := ...;
再用Img.Picture.Bitmap.Canvas.Handle
 
TImage 没有句柄
 

Similar threads

回复
0
查看
832
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部