窗口句柄问题不清? edit1.Text:=inttostr(getdc(self.Handle));
edit2.Text:=inttostr(getdc(self.Handle));
edit3.Text:=inttostr(getdc(self.Handle));
突然发现三个Edit的显示内容竟多不一样?奇怪吗?
难到只能先用变量保存起来这一种解决办法吗?(为了统一使用)
var
hdcTemp:HDC;
Begin
hdcTemp:=GetDC(Self.Handle);
...
End;
edit2.Text:=inttostr(getdc(self.Handle));
edit3.Text:=inttostr(getdc(self.Handle));
突然发现三个Edit的显示内容竟多不一样?奇怪吗?
难到只能先用变量保存起来这一种解决办法吗?(为了统一使用)
var
hdcTemp:HDC;
Begin
hdcTemp:=GetDC(Self.Handle);
...
End;
var
HDCt:HDC;
Begin
HDCt:=GetDC(Self.Handle);
SetBkMode(HDCt,TRANSPARANT);
SetBkColor(HDCt,RGB(255,0,0)); Ellipse(HDCt,100,100,200,200);
End;
2、下面则不对?
var
{HDCt:HDC;}
Begin
{HDCt:=GetDC(Self.Handle);} SetBkMode(GetDC(Self.Handle),TRANSPARANT);
SetBkColor(GetDC(Self.Handle),RGB(255,0,0)); Ellipse(GetDC(Self.Handle),100,100,200,200);
End;
比如:
var
H:HDC;
begin
H := getdc(self.Handle);
edit1.Text:=inttostr(H);
ReleaseDC(self.Handle, H);
edit2.Text:=inttostr(getdc(self.Handle)); //此时edit2和edit1的Text是一样的
end;