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 悬浮窗口、浮动窗口的实现的更多相关文章
- delphi设计浮动窗口
		delphi设计浮动窗口 用过Photoshop的朋友一定对它的那些方便的浮动面板记忆犹新,其实这些面板就是一个个的小窗体,但这些小窗体都放在Photoshop的主窗体上 (不是存在主窗体中),有自己 ... 
- Android 浮动窗口进阶——画中画,浮动视频(附Demo)
		今天继续上一篇Android顶层窗口.浮动窗口的进阶应用.上一篇主要讲解了WindowManager服务和如何使用WindowManager编写一个顶层窗口.今天主要是讲讲如何在顶层窗口里面播放视频, ... 
- Android 实现顶层窗口、浮动窗口(附Demo)
		做过Window程序开发的朋友应该都知道,我们要把程序窗口置顶很简单,只要设置一些窗口属性即可.但是到了Android,你无法简单设置一个属性,就让Android的Activity置顶.因为只要有新的 ... 
- (转)JS浮动窗口(随浏览器滚动而滚动)
		原文:http://hi.baidu.com/aiyayaztt/item/4201c55a6b729dced2e10c79 JS浮动窗口(随浏览器滚动而滚动) 往往用于一些联系方式,互动平台模块,随 ... 
- Jquery 类似新浪微博,鼠标移到头像,用浮动窗口显示用户信息,已做成一个jquery插件
		请注意!!!!! 该插件demo PHP 的 demo下载 C#.NET的demo下载 需要如下图, 1.鼠标移动到头像DIV时,Ajax获取数据,并让浮动DIV显示出来. 2.鼠标可以移动到上面浮 ... 
- DELPHI中MDI子窗口的关闭和打开
		DELPHI中MDI子窗口的关闭 和打开 Delphi中MDI子窗口的关闭方式默认为缩小而不是关闭,所以当你单击子窗口右上角的关闭按钮时会 发觉该子窗口只是最小化,而不是你预期的那样被 ... 
- DELPHI中MDI子窗口的关闭 和打开
		Delphi中MDI子窗口的关闭方式默认为缩小而不是关闭,所以当你单击子窗口右上角的关闭按钮时会发觉该子窗口只是最小化,而不是你预期的那样被关闭.解决办法是在子窗口的OnClose事件处理过程中加入如 ... 
- Android Studio 工具窗口浮动与布局恢复【申明:来源于网络】
		Android Studio 工具窗口浮动与布局恢复[申明:来源于网络] http://bbs.chinaunix.net/thread-4182438-1-1.html 
- Android浮动窗口的实现
		1.浮动窗口的实现原理 看到上图的那个小Android图标了吧,它不会被其他组建遮挡,也可以响应用户的点击和拖动事件,它的显示和消失由WindowManager直接管理,它就是Android浮动窗口. ... 
随机推荐
- linq any() all() 返回true 或者false
			一.any()只要有一个符合条件就返回true static void Main(string[] args) { //any 有符合条件的就返回true ,,,,,,,,,}; ); Console ... 
- java 静态方法和单例模式的区别
			1.加载时间 首先明白内存问题 Java内存分为:堆内存.栈内存.方法区(静态区和非静态区).本地方法区 无论是静态方法还是非静态方法,在内存中都只有一份分别位于方法区的静态区和非静态区:非静态方法在 ... 
- 转 shell中字分隔的妙用:变量IFS
			IFS 的全称是 Interal Field Separator ,即"内部区域分隔符",它也是一个内置环境变量,存储着默认的文本分隔符,默认下这分隔符是空格符(space c ... 
- oracle中触发器的讲解
			触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行.即触发器是当某个事件发生时自动地隐式运行.并且,触发器不能接收参数. ... 
- sed awk 小例
			实现数据库批量更新与回滚 create database awktest; use awktest create table user( id int unsigned not null uni ... 
- PHP 上传图片,生成水印,支持文字, gif, png
			//admin_upfile.php <html> <meta http-equiv="Content-Type" content="text/html ... 
- Office2003/2010等集成SP的简单方法
			Office2003集成SP的简单方法 需要准备的工具:Office 2003 光盘镜像.SP3更新包.Office 2003 序列号.UltraISO,7-zip或winrar,虚拟光驱 步骤一:提 ... 
- 在windows系统用odbc连接
			当连接的数据出现失败时,出现数据库别名仍然存在,但还是要用这个别名重新建立连接 在windows客户端,用输入db2cmd输入c:\Users\yexuxia>db2 list db direc ... 
- html 7.29
			4.请判断以下说法是否正确:HTML 会被 XHTML 取代. 您的回答:错误 正确答案:正确 9.请判断以下说法是否正确:DOCTYPE 没有关闭标签. 您的回答:错误 正确答案:正确 13.下列哪 ... 
- FZU 2140 Forever 0.5(将圆离散化)
			主要就是将圆离散化,剩下的都好办 #include<iostream> #include<cstdio> #include<cstring> #include< ... 
