Drawing text on desktop
Using this simple trick, you can write any text right on Windows desktop. You can choose text color, transparency, position…
This trick has one little problem. As you can see, if you move some window or any object (icon) over the text, it will be deleted. So you
must take of “redrawing” the text.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var dc: hdc; ocolor: COLORREF; oBKM : integer; OurText: PAnsiChar; begin OurText := 'Hello, World!'; dc := GetWindowDC(GetDesktopWindow); try ocolor := SetTextColor(DC, RGB(0, 255, 0)); oBKM := SetBkMode(DC, TRANSPARENT); TextOut(DC, 500, 300, OurText, Length(OurText)); SetBkMode(DC, oBKM); SetTextColor(DC, ocolor); finally ReleaseDC(GetDesktopWindow, DC); end; end; end. |