找一个图形按钮 我想找一个图形按钮的VCL控件,可以显示图片,并能透明,在有焦点的时候不透明,而且可以设置形状我找了1stClass中的fcShapeBtn,但它不透明,大家帮一下吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己试着写一个,我这里有各为button设置背景图片的代码,给你参考一下Procedure TForm1.MyBtnWndProc( Var msg : TMessage );Var hdcBtn : HDC; btnCanvas : TCanvas; pic : TBitmap; bmp : TBitmap;Begin OldBtnProc( msg ); If (msg.Msg = BM_SETSTATE) Or (msg.Msg = WM_PAINT) Then Begin hdcBtn := GetDC( Button1.Handle ); btnCanvas := TCanvas.Create; pic := TBitmap.Create; bmp := TBitmap.Create; bmp.Width := Button1.Width; bmp.Height := Button1.Height; Try btnCanvas.Handle := hdcBtn; BitBlt( bmp.Canvas.Handle, 0, 0, bmp.Width, bmp.Height, btnCanvas.Handle, 0, 0, SRCCOPY ); bmp.TransparentColor := GetSysColor(COLOR_BTNFACE); bmp.Transparent := True; pic.LoadFromFile( 'c:\win95\sandstone.bmp' ); btnCanvas.Draw(0,0, pic ); btnCanvas.Draw(0,0,bmp ); Finally bmp.Free; pic.Free; btnCanvas.Free; ReleaseDC( Button1.Handle, hdcBtn ); End; End;End; 你所说得透明是不是指Alpha混合?估计这个还是比较难实现的,尤其是在非纯色的背景上。你可以试着把一个TWinControl通过API设置成半透明的。 你在SPEEDBUTTON下继承,然后自己写网上应该也能收到 如何使用GetExceptionCode 100分求Sql语句。up有分 intraweb7.2.12序列号是多少啊,找了半天都找不到,急!!! 热烈欢迎大家讨论一下《关于数据传输的问题》? 关于传递信息的问题? 如何使自己的程序的窗口处于屏幕的最上层?象Flash Get那样 急 急 急 关于SQL SERVER smeidll.dll在delphi下的调用疑问,急! TClientSocket与TServerSokcet的10055是何错误?为什么会常发生? 怎样判断是否上网 这样的PageControl上怎样动态的生成这样的TabSheet? 菜鸟,可用分不够的来~~~
Procedure TForm1.MyBtnWndProc( Var msg : TMessage );
Var hdcBtn : HDC;
btnCanvas : TCanvas;
pic : TBitmap;
bmp : TBitmap;
Begin
OldBtnProc( msg );
If (msg.Msg = BM_SETSTATE) Or (msg.Msg = WM_PAINT) Then
Begin
hdcBtn := GetDC( Button1.Handle );
btnCanvas := TCanvas.Create;
pic := TBitmap.Create;
bmp := TBitmap.Create;
bmp.Width := Button1.Width;
bmp.Height := Button1.Height;
Try
btnCanvas.Handle := hdcBtn;
BitBlt( bmp.Canvas.Handle, 0, 0, bmp.Width, bmp.Height, btnCanvas.Handle, 0, 0, SRCCOPY );
bmp.TransparentColor := GetSysColor(COLOR_BTNFACE);
bmp.Transparent := True;
pic.LoadFromFile( 'c:\win95\sandstone.bmp' );
btnCanvas.Draw(0,0, pic );
btnCanvas.Draw(0,0,bmp );
Finally
bmp.Free;
pic.Free;
btnCanvas.Free;
ReleaseDC( Button1.Handle, hdcBtn );
End;
End;
End;
你可以试着把一个TWinControl通过API设置成半透明的。
网上应该也能收到