在屏幕上写字(50分)

  • 主题发起人 主题发起人 johnpan
  • 开始时间 开始时间
J

johnpan

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好:
我想请教一个问题:
如何在FORM之外的屏幕上写几个字,我想可能用TCONVAS可以,但是不知道用谁
的CANVAS.
 
可以写在桌面上。
var dskcanvas:TCanvas;
begin
dskcanvas:=tcanvas.create;
dskcanvas.handle:=getdc(0);
dskcanvas.textout(1,1,'asdfasdfasdf');
end;
 
DC := GetDC(0);

ACanvas := TCavnas.Create;
TCanvas.Handle := DC:
 
用win api getdc()函数,用raleasedc()释放。
 
var
dc:hdc;
begin
dc:=getdc(0);
dc。textout(320,240,‘hell delphiuser’);
releasedc(dc);
end;
试试。
 
有没有搞错? dc有textout这个方法吗?????
 
我曾经在网上见过这样的一个例子,
具体想不起来了.
我去找一找.
 
不知道。知识看过没用过 dc
 
应该用GetWindowDC,具体如下(使用的是C++ BUILDER,
改改就可以用在DELPHI上):
--------------------------------------------------
HWND HandleOfDesktop;
HDC HdcOfDesktop;
HandleOfDesktop=GetDesktopWindow();
HdcOfDesktop=GetWindowDC(HandleOfDesktop);
TextOut(HdcOfDesktop,100,100,(LPCTSTR)"This is my DESKTOP",18);
ReleaseDC(HandleOfDesktop,HdcOfDesktop);
--------------------------------------------------------------
其中GetDesktopWindow(),GetWindowDC(),TextOut()&ReleaseDC()
均为WIN API函数。
 
var
hdldtp:thandle;
hdcdtp:hdc;
begin
hdldtp:=GetDesktopWindow();
hdcdtp:=GetWindowDC(hdldtp);
TextOut(hdcdtp,500,300,'Welcome to delphi bbs!',22);
ReleaseDC(hdldtp,hdcdtp);
end;
和luckm的思路完全一样,可能TEXTOUT还不能满足你的显示要求,自己再改动改动吧!
 
多人接受答案了。
 
后退
顶部