- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Delphi 实现悬浮窗口
Delphi 实现悬浮窗口
时间:2011-5-30 来源:yang作者:peng点击:30次
Delphi 实现网络蚂蚁和 FlashGet 的悬浮窗口 所属类别: DELPHI
推荐指数:★★★☆
文档人气:430
文档人气:
430
本周人气:
发布日期:2006-6-6
发布日期:
2006-6-6
最近有网友问道如何用Delphi
最近有网友问道如何用
Delphi 实现 网络蚂蚁 和
FlashGet 的悬浮窗口 ,笔者对使用
到的相关技巧做了整理如下 : 1 .悬浮窗口
Delphi 的 TForm.FormStyle 具有 fsStayOnTop 属性 ,
但只是对其程序本身而言的
也就是说只在此应用程序本身的窗口中是前端显示的 ,其他
的程序的窗口仍然可以覆盖 此类型的窗口。这是应为此窗口的父窗口是 TApplication 。
要让悬浮窗口独立的显示
在屏幕前端 ,应在创建窗口时将其父窗口设置为
桌面 。
Form2 :=
TForm2.CreateParented(GetDesktopWindow);2. 允许
Client 区域拖动窗口
这只要捕获窗口的 WM_NCHITTEST 消息 ,将客户区
HitTest(HTCLIENT) 变成标题栏
的 HitTest(HTCAPTION) 就可以了。 3. 半透明
Windows2000/XP 给窗口增加了 WS_EX_LAYERED
属性 ,并通过 API
SetLayeredWindowAttributes(); 来设置此属性的详细信息。
Delphi 6 的 Forms 单元
已经支持此窗口属性。
property AlphaBlend default False;
// 是否使用
半透明效果
property AlphaBlendValue default 255;
// 透明度
0..255
property TransparentColor default False;
// 是否使
用穿透色
property TransparentColorValue default 0;
// 穿透色
(*此功能仅 Windows2000/XP 支持 ,不要在
Win9x 尝
试此特效 )4. 接收来自 Shell 的鼠标拖拽
这将使用到 ActiveX 单元的 IDropTarget 接口 , 并扩
展你的 Form 类。
TForm2 = class(TForm, IDropTarget) end;
并在窗口拥有句柄后 ,用 RegisterDragDrop() 注册成为
DragDrop 接受目标。以下是实现的代码 :unit
DropBin;interfaceuses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls, ActiveX, ComObj;type
TfrmDropBin = class(TForm, IDropTarget)
private
procedure WMNCHitTest(var Msg:TWMNCHitTest);
message WM_NCHITTEST;
protected
procedure CreateParams(var Params:
TCreateParams); override;
procedure CreateWnd; override;
procedure DestroyWnd; override;
procedure DoClose(var Action: TCloseAction);
override;
// DragDrop 支持
function DragEnter(const dataObj: IDataObject;
grfKeyState: Longint; pt: TPoint; var dwEffect: Longint):
HResult; stdcall;
function IDropTarget_DragOver(grfKeyState: Longint;
pt: TPoint; var dwEffect: Longint): HResult; stdcall;
function IDropTarget.DragOver =
IDropTarget_DragOver; // 解决 IDropTarget.DragOver
与 TForm.DragOver 冲突问题
function DragLeave: HResult; stdcall;
function Drop(const dataObj:
您可能关注的文档
- CISG与中国合同法比较要点.docx
- CLJ-02E型尘埃粒子计数器标准操作规程讲解.docx
- CNCA—N—004:2007良好农业规范认证实施规则要点.docx
- COD及BOD的测定方法讲解.docx
- CORT思考工具在实践中的运用.docx
- cpu转速不稳定怎么办.docx
- CRH――中国科技需要这样的发展速度.docx
- CS194Z-2S4复费率网络多功能仪表S说明书要点.docx
- csis专题研究报告:中国在引领全球科技创新吗.docx
- CT-C型热风循环干燥箱再验证方案.docx
- 2022-2023年初级银行从业资格之初级个人贷款模拟卷.docx
- 材料员之材料员基础知识模拟卷附有答案详解.docx
- 2022-2023年初级银行从业资格之初级个人贷款通关练习题库包含答案.docx
- 2022-2023年初级银行从业资格之初级个人贷款通关模拟题库附带答案.docx
- 2022-2023年材料员之材料员基础知识综合提升练习试题包括详细解答.docx
- 2022-2023年初级银行从业资格之初级个人贷款练习题附有答案详解.docx
- 2022-2023年初级银行从业资格之初级个人贷款练习试题包含答案.docx
- 2022-2023年材料员之材料员基础知识综合提升训练试卷包括详细解答.docx
- 材料员之材料员基础知识练习题库包括详细解答.docx
- 2022-2023年初级银行从业资格之初级个人贷款测试卷包含答案.docx
文档评论(0)