源:Delphi 悬浮窗口、浮动窗口的实现

浮动窗体的实现

http://blog.tianya.cn/blogger/post_show.asp?BlogID=68097&PostID=806089

需要一个这样的窗体:
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中如何开发类似《网络蚂蚁》中悬浮窗口?

http://topic.csdn.net/t/20010802/11/220206.html

unit
Unit2;

interface

uses
Windows, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type

TfrmPop = class(TForm)
procedure FormMouseDown(Sender: TObject; Button:
TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private
declarations }
public
{ Public declarations }
procedure
CreateParams(var Params: TCreateParams); override;
end;

var

frmPop: TfrmPop;

implementation

{$R *.dfm}

procedure TfrmPop.CreateParams(var Params: TCreateParams);
begin

inherited CreateParams(Params);
with Params do
begin
ExStyle :=
ExStyle or WS_EX_TOPMOST or WS_EX_TOOLWINDOW;
WndParent := 0;
end

end;

procedure TfrmPop.FormMouseDown(Sender: TObject; Button:
TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin

ReleaseCapture;
Perform(WM_SYSCOMMAND,$F012,0);
end;

end.

=======================================================================

我试成功了。

以下为主窗体的代码:
uses unit2;

procedure TForm1.Show(Sender:TObject);

begin
Form2.Show;
end;

//Form2的代码
protected

procedure CreateParams(var Params:TCreateParams);override;

procedure
TForm2.CreateParams(var Params:TCreateParams);
begin
inherited
CreateParams(Params);
Params.WndParent:=0;

Params.ExStyle:=Params.ExStyle or WS_EX_TOOLWINDOW;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
Width:=40;

Height:=40;
end;

procedure TForm2.FormMouseDown(Sender: TObject;
Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin

ReleaseCapture;
Perform(WM_SYSCOMMAND,$F012,0);
end;

//将FORM2的STYLE属性设为bsNone;还要将Form2的FormStyle属性设为fsStayOnTop,使佗总在最前。

Delphi 悬浮窗口、浮动窗口的实现的更多相关文章

  1. delphi设计浮动窗口

    delphi设计浮动窗口 用过Photoshop的朋友一定对它的那些方便的浮动面板记忆犹新,其实这些面板就是一个个的小窗体,但这些小窗体都放在Photoshop的主窗体上 (不是存在主窗体中),有自己 ...

  2. Android 浮动窗口进阶——画中画,浮动视频(附Demo)

    今天继续上一篇Android顶层窗口.浮动窗口的进阶应用.上一篇主要讲解了WindowManager服务和如何使用WindowManager编写一个顶层窗口.今天主要是讲讲如何在顶层窗口里面播放视频, ...

  3. Android 实现顶层窗口、浮动窗口(附Demo)

    做过Window程序开发的朋友应该都知道,我们要把程序窗口置顶很简单,只要设置一些窗口属性即可.但是到了Android,你无法简单设置一个属性,就让Android的Activity置顶.因为只要有新的 ...

  4. (转)JS浮动窗口(随浏览器滚动而滚动)

    原文:http://hi.baidu.com/aiyayaztt/item/4201c55a6b729dced2e10c79 JS浮动窗口(随浏览器滚动而滚动) 往往用于一些联系方式,互动平台模块,随 ...

  5. Jquery 类似新浪微博,鼠标移到头像,用浮动窗口显示用户信息,已做成一个jquery插件

    请注意!!!!! 该插件demo PHP 的 demo下载  C#.NET的demo下载 需要如下图, 1.鼠标移动到头像DIV时,Ajax获取数据,并让浮动DIV显示出来. 2.鼠标可以移动到上面浮 ...

  6. DELPHI中MDI子窗口的关闭和打开

    DELPHI中MDI子窗口的关闭 和打开       Delphi中MDI子窗口的关闭方式默认为缩小而不是关闭,所以当你单击子窗口右上角的关闭按钮时会   发觉该子窗口只是最小化,而不是你预期的那样被 ...

  7. DELPHI中MDI子窗口的关闭 和打开

    Delphi中MDI子窗口的关闭方式默认为缩小而不是关闭,所以当你单击子窗口右上角的关闭按钮时会发觉该子窗口只是最小化,而不是你预期的那样被关闭.解决办法是在子窗口的OnClose事件处理过程中加入如 ...

  8. Android Studio 工具窗口浮动与布局恢复【申明:来源于网络】

    Android Studio 工具窗口浮动与布局恢复[申明:来源于网络] http://bbs.chinaunix.net/thread-4182438-1-1.html

  9. Android浮动窗口的实现

    1.浮动窗口的实现原理 看到上图的那个小Android图标了吧,它不会被其他组建遮挡,也可以响应用户的点击和拖动事件,它的显示和消失由WindowManager直接管理,它就是Android浮动窗口. ...

随机推荐

  1. perl-cgi基础

    来源: http://www.cnblogs.com/itech/archive/2012/09/22/2698553.html 代码: http://xxxxx/cgi/perl-cgi.cgi?n ...

  2. Perl的调试方法

    来源: http://my.oschina.net/alphajay/blog/52172 http://www.cnblogs.com/baiyanhuang/archive/2009/11/09/ ...

  3. 纯CSS做的一个Silder

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  4. 【A + B + C + D】 问题

    A + B + C + D Time Limit: 40000/20000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  5. java代码用dom4j解析xml文件的简单操作

    时间: 2016/02/17 目标:为telenor的ALU Femto接口写一个采集xml文件并解析出locationName标签里的值,然后更新到数据库中. 从网上搜了下,有四种常用的解析xml的 ...

  6. 关于一些url中传递参数有空格问题

    1.关于一些url中传递参数有空格问题: url.replace(/ /g, "%20") 从上面的例子中可以看到可以用:replace(/ /g, "%20" ...

  7. linux通用邻居基础架构

    1.为每一个协议提供一个缓存来存放L3到L2的转换结果. 2.提供在缓存中添加.删除.改变和查找一个特定映射项的函数.查找函数必须要快,因为它会影响整个系统的性能. 3.为每一个协议缓存的数据项提供一 ...

  8. vbs 截图

    'VBS截屏.vbs '  Win7x64 测试通过(已安装Word2007): '参考: '  http://qtp.blogspot.com/2010/02/screenshot-vbscript ...

  9. Windows API 之 InternetOpen、InternetOpenUrl、InternetReadFile

    InternetOpen: Initializes an application's use of the WinINet functions. HINTERNET InternetOpen( _In ...

  10. (二)、Struts第二天

    (二).Struts第二天 回顾: 问题: 1. Struts2的Action类是单例还是多例? Filter? Servlet? Listener? 2. 介绍struts2框架引入的相关jar包及 ...