为什么无法获取桌面窗口句柄 ( 积分: 50 )

  • 主题发起人 主题发起人 hopegood
  • 开始时间 开始时间
H

hopegood

Unregistered / Unconfirmed
GUEST, unregistred user!
var
dd:hdc;
canvas:tcanvas;
begin
dd:=getdc(getdesktopwindow());//dd:=getdc(0)却可以
canvas.handle:=dd;
canvas.lineto(10,10)
桌面上为什么没有画出这条线
 
var
dd:hdc;
canvas:tcanvas;
begin
dd:=getdc(getdesktopwindow());//dd:=getdc(0)却可以
canvas.handle:=dd;
canvas.lineto(10,10)
桌面上为什么没有画出这条线
 
为什么没有人回答呢,是不是太简单呢还是什么啊
 
CreateDC('DISPLAY', nil, nil, nil)
 
不知道getdesktopwindow()这个函数是咋的,反回的值为无效.
不知道是不是Windows版本的问题?我的是xp+sp2+delphi6
 
经过一番思考,这个问题还是自己解决呢
var
dd:hdc;
canvas:tcanvas;
begin
dd:=getwindowdc(getdesktopwindow());//要用getwindowdc才可以啊
canvas.handle:=dd;
canvas.lineto(10,10)
桌面上为什么没有画出这条线
 
procedure TForm1.Button1Click(Sender: TObject);
var
Canvasc :TCanvas;
i :integer;
Bmp :TBitmap;
begin

Canvasc :=TCanvas.Create ;
Canvasc.Handle :=Getdc(0);
Bmp :=TBitmap.Create ;
Bmp.Width :=1024;
Bmp.Height :=768;
Bmp.Canvas.CopyRect(Rect(0,0,1024,768),Canvasc,Rect(0,0,1024,768));

for i:=0 to 512 do
begin
Canvasc.Brush.Color :=clYellow;
Canvasc.Pen.Color :=clBlue;
Canvasc.Rectangle(512-i,0,512+i,768);
sleep(1);
end;
Canvasc.CopyRect(Rect(0,0,1024,768),Bmp.Canvas,Rect(0,0,1024,768));
Bmp.free;
Canvasc.Free;
end;
 

Similar threads

I
回复
0
查看
690
import
I
I
回复
0
查看
790
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部