关于显示透空歌词的思路 - 回复 "zhaoboaidelphi" 的问题
2011-05-14 16:42
453 查看
问题来源: http://www.cnblogs.com/del/archive/2009/12/22/1629717.html#2096734
1、使用 TransparentColor、TransparentColorValue 给窗体指定透明色;
2、绘制非透明色的文本, 用 TLabel 呈现文本也可;
3、处理 WM_NCHITTEST 消息使窗体能够被拖动;
4、用 Esc 键退出.
测试代码:
1、使用 TransparentColor、TransparentColorValue 给窗体指定透明色;
2、绘制非透明色的文本, 用 TLabel 呈现文本也可;
3、处理 WM_NCHITTEST 消息使窗体能够被拖动;
4、用 Esc 键退出.
测试代码:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormKeyPress(Sender: TObject; var Key: Char); private protected procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST; public end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin FormStyle := fsStayOnTop; BorderStyle := bsNone; TransparentColor := True; TransparentColorValue := Color; Font.Size := 72; Font.Name := 'Arial Black'; // DoubleBuffered := True; end; procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if Key = Chr(27) then Close; end; procedure TForm1.Timer1Timer(Sender: TObject); var str: string; begin str := TimeToStr(Now); ClientWidth := Canvas.TextWidth(str); ClientHeight := Canvas.TextHeight(str); Canvas.Lock; Canvas.Brush.Color := Color; Canvas.FillRect(ClientRect); Canvas.Brush.Style := bsClear; Canvas.Font.Color := clBlack; Canvas.TextOut(1, 1, str); Canvas.Font.Color := clRed; Canvas.TextOut(0, 0, str); Canvas.Brush.Style := bsSolid; Canvas.Unlock; end; procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest); begin Message.Result := HTCAPTION; end; end.
相关文章推荐
- 关于 OnMouseWheelDown、OnMouseWheelUp 等事件的简单例子 - 回复 "巅枫" 的问题
- 关于DEBUG模式下,"应用程序正常初始化 0xc00150002 失败,终止应用程序"问题解决思路
- 关于label.setIcon(new ImageIcon("xxx.jpg"));无法显示问题
- 关于字符latin capital letter sharp s "ß"( U+1E9E)显示的问题
- 关于无法显示该网页,弹出对话框显示"Internet Explorer无法打开Internet站点xxx,已终止操作"问题的解决方法
- 解决关于vs2010中"w"无法 显示的问题
- 关于"Shipping Transactions Form"查询界面中没有显示Additional tab的问题
- 关于<input type="text">不能显示空格的问题
- 关于"显示所有文件和文件夹"不能修改的问题
- 关于android与php传递数据,引号显示&quot的问题
- 关于 zjsflyer 对 JPgraph 中文显示乱码问题的回复
- 如何打开记事本并显示指定内容 - 回复 "苦苦苦" 的问题
- 如何用弹出窗口显示进度 - 回复 "嘿嘿嘿" 的问题
- 关于echo -e "hello\b"命令显示问题 ;\t 的问题
- 关于<input type="text">不能显示空格的问题
- 回复 "Globe" 关于 XML 编码转换的问题
- 如何在 TDrawGrid 的单元格中显示图片 - 回复 "巅枫" 的问题
- 一个拼图工具的制作思路 - 回复 "AlwaysBug" 的问题
- 关于 "高位" 与 "低位" - 回复 "Lovemit" 的问题
- 关于CImage和AlphaBlend的透明PNG图片显示问题