在statusbar 的某一个panel上画图;(10分)

  • 主题发起人 主题发起人 cjfandhf
  • 开始时间 开始时间
C

cjfandhf

Unregistered / Unconfirmed
GUEST, unregistred user!
在statusbar ondraw 里;
panel:=stabar1.Panels[3];
ImageList1.Draw(stabar1.Canvas,rect.Left,rect.Right,1,true);
但画不出来,为啥?
 
要设置stabar1.Panels[3].Styel为psOwnerDraw
 
我设了:stabar1.Panels[3].Styel为psOwnerDraw
 
我是用C++Builder的,但我想应该一样
void __fastcall TForm1::sbarDrawPanel(TStatusBar *StatusBar,
TStatusPanel *Panel, const TRect &Rect)
{
ImageList1->Draw(StatusBar->Canvas,Rect.Left,Rect.Top,1,true);
}
注意要设置stabar1.Panels[3].Styel为psOwnerDraw
 
以上答案我试过了,还是不行;
 
ImageList1.Draw(stabar1.Canvas,rect.Left,rect.Right,1,true);
改成:
ImageList1.Draw(stabar1.Canvas,rect.Left,rect.<font color=red>Top</font>,1,true);
 
把某一个状态栏的style改成psownerdraw
在statusbardrawpanel中写:
var image:tpicture;
try
image:=tpicture.create;
image.loadfromfile('c:/aaa.bmp');
statusbar1.canvas.draw(rect.left,rect.top,image.bitmap);
finally
image.free;
end;
 
cAKK 可以吗?
 
大不了,用 canvas, 计算panel 的宽度,在一定范围内话就行了,

也该结束了。
 
多人接受答案了。
 
后退
顶部