已经用
SetWindowRGN(button1.handle,CreateEllipticRGN(0,0,60,20),true)
创建了一个椭圆形的按钮,但接下来的代码(如下)没有起作用……高手可以解释一下原因和提供一些解决思路么? tbmp:=TBitmap.Create;
tbmp.LoadFromResourceID(hinstance,001);
tmpdc:=GetDC(button1.Handle);
With TCanvas.Create do
try
handle:=tmpDC;
Lock;
draw(0,0,tbmp);
Unlock;
finally
ReleaseDC(button1.Handle,tmpdc);
free;
end;
tbmp.Free;
SetWindowRGN(button1.handle,CreateEllipticRGN(0,0,60,20),true)
创建了一个椭圆形的按钮,但接下来的代码(如下)没有起作用……高手可以解释一下原因和提供一些解决思路么? tbmp:=TBitmap.Create;
tbmp.LoadFromResourceID(hinstance,001);
tmpdc:=GetDC(button1.Handle);
With TCanvas.Create do
try
handle:=tmpDC;
Lock;
draw(0,0,tbmp);
Unlock;
finally
ReleaseDC(button1.Handle,tmpdc);
free;
end;
tbmp.Free;
解决方案 »
- 关于DBGrid 的问题?
- 怎么样获取ie地址栏的url啊(急)
- 刚从 派出所 出来
- 紧急求助!
- 招聘软件开发人员(工作地点石家庄)
- 请教:关于怎样用delphi调用visual c++编写的dll问题
- Microsoft Access的表的最多能保存多少条记录,对Access数据库备份时,可否对某一个表单独备份?
- 请问数据库控件的 BookMark(书签)属性是什么意思,如何使用?
- 请问ADOTABLE查询的时候怎样能够模糊查询?
- 高手在吗?高手在吗?高手在吗?:用query或table查询数据库后,显示在dbgrid中,如何把这些记录打印出来???
- 画弧线的问题
- ListBox的问题!!在线!!
tbmp.LoadFromResourceID(hinstance,001);
tmpdc:=GetDC(button1.Handle);//你这个DC在哪里用了????
With TCanvas.Create do//这个Canvas临时创建了干嘛???
try
handle:=tmpDC;
Lock;
draw(0,0,tbmp);//这个位图是画在自己创建的Canvas上,肯定不起作用啦!
Unlock;
finally
ReleaseDC(button1.Handle,tmpdc);
free;
end;
tbmp.Free;试试这样;
从TButton继承,重载Paint过程,在工程中代码如下:
var
bmp:TBitmap;
tmpDC:HDC;
begin
bmp:=TBitmap.Create;
GetDC(Handl);
try
tbmp.LoadFromResourceID(hinstance,001);
Bitblt(tmpDC,0,0,bmp.width,bmp.height,bmp.Canvas.handle,0,0,SRCCOPY);
finally
bmp.free;
ReleaseDC(tmpDC);
end;
end;
随便写的,这台机子上没Delphi,不过应该没什么问题.