Delphi 悬浮窗口 浮动窗口 迅雷下载浮动窗口的实现


本文整理自网络,侵删。

 

浮动窗体的实现

需要一个这样的窗体:
a:没有标题栏; b:可以改变大小; c:不在任务栏上显示图标; d:如果不是主窗体,它的最小化不受主窗体的限制; e:在最顶端显示

处理:
a:不在任务栏出现的,只要设置窗体的属性为ToolWindow就可以了.
b:要想使窗体脱离主窗体的限制,必须修改它的ParentWnd,使用SetParent显然有些问题.可以通过重载CreateParams方法来实现.
如下:
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.WndParent := GetDesktopWindow;
//Params.Style := (Params.Style or ws_Popup) and (not ws_Caption);
Params.Style := Params.Style and (not WS_CAPTION) and (not WS_BORDER);
Params.Style := Params.Style or WS_POPUP or WS_THICKFRAME or WS_CLIPCHILDREN;
end;

在DELPHI中如何开发类似《网络蚂蚁》中悬浮窗口?

protected:
virtual void __fastcall CreateParams(TCreateParams & Param);

void __fastcall TForm1::CreateParams(TCreateParams & Param)
{
//调用基类
TForm::CreateParams(Param);
//去掉窗口标题区
Param.Style=Param.Style & ~WS_CAPTION;
Param.Style=Param.Style | WS_POPUP;
//设为总在最上边
Param.ExStyle=Param.ExStyle | WS_EX_TOPMOST;
//设WINDOWS OWNER为DESKTOP WINDOWS
Param.WndParent=GetDesktopWindow();
}


注意:1.Windows Owner与Windows Parent不同,用::SetParent函数和设置
Form?->Parent只能设置Windows Parent,不能设置Windows Owner,
要实现FlashGet的悬浮窗必须要设置Windows Owner。
2.Form的BorderStyle要设为bsToolWindow,不然在任务栏上会显示出这个窗口的标题,
将Caption设为空也没有用。    

相关阅读 >>

Delphi通过窗口标题结束指定进程函数

Delphi 将image组件的图片保存为jpg格式图片方法

Delphi 获取所有应用程序窗口标题 类似任务管理器

Delphi 链接转换为本地文件路径

Delphi 长文件路径转换短文件路径

Delphi 跨平台打开网址链接

Delphi twebbrowser打开paypal出错

Delphi应用程序 paramstr()带有参数

Delphi unidbtreegrid判断点击折叠事件

Delphi wmi 获取操作系统信息

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...