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浮动窗口. ...
随机推荐
- Windows 系统变量大全
来源:http://blog.csdn.net/kingwolf_javascript/article/details/2477234 %ALLUSERSPROFILE% : 列出所有用户Profil ...
- Oracle自增长序列
create table user_info ( id number(6) primary key, username varchar2(30) not null, password varchar2 ...
- HTML+CSS Day05 基本CSS选择器、复合CSS选择器与CSS继承性
1.基本CSS选择器 (1)标记选择器 <style> h1{ color:red; font-size:25px;} &l ...
- java socket解析和发送二进制报文工具(附java和C++转化问题)
解析: 首先是读取字节: /** * 读取输入流中指定字节的长度 * <p/> * 输入流 * * @param length 指定长度 * @return 指定长度的字节数组 */ pu ...
- xcconfig 文件配置文件 问题
与公司 QA 聊天,已不止一次被吐槽说移动端从开发环境转到生产环境时,还要靠修改代码来配置对应的环境参数.她认为,从 App 转测试之后,就不应该再修改代码,可以把所有的环境配置都整合到配置文件中,这 ...
- CDockablepane风格设置
屏蔽掉pane右上角的几个按钮 即将CDockablePane右上角的三个按钮屏蔽. 1 去掉关闭按钮 在CDockablePane的派生类中,重写方法CanBeClosed即可 ...
- ajax请求dotnet webservice格式
$.ajax({ type: "post", url: "your_webservice.asmx/you_method", contentType: &quo ...
- select 通过表单提交获取select中的值
<select class="txt" name="choice"> <option value="name" ...
- Apache多端口配置
修改http.conf监听多个端口 Listen 80 Listen 8001 Listen 8002 配置站点 <VirtualHost *:8001> ServerName *:800 ...
- POJ2718 递归套递归
就是给你一个数,排列组合,然后问如何排列之间的差值最小. 我之前的想法是一个递归,然后两个for循环枚举L1和L2,结果TLE了,然后想了一下剪枝发现没办法剪,然后看了一下别人的代码,用了next_p ...