delphi 不规则窗体与桌面宠物】的更多相关文章

二.支持区域操作的编程接口在Windows的API函数中有一组用于区域操作的函数,可以用来生成区域.合并区域.获取区域数据.根据数据生成区域.把区域和窗体联系等,其中常用的几个函数有:生成矩形区域的CreateRectRgn函数,生成椭圆区域的CreateEllipticRgn函数,合并两个区域的CombinetRgn函数,从内存区域数据生成区域的ExCreateRegion函数,获得区域数据的GetRegionData函数,把区域和窗体联系的SetWindowRgn函数.在Delphi中,这些…
最近为了要兼容XP系统(守旧的市场),又需要做出产品的特效,不得不从头学习一下这门 “聪明的语言” . 开发环境: win10 Delphi 10.2 Version 25.0.26309.314 产品环境:最低xp系统 使用 http://www.bilsen.com/gdiplus/index.shtml  网站下载中的 Gdi+ 1.0 1. 项目dpr文件中引用即可: uses GdiPlus in '..\PublicLib\GdiPlus\GdiPlus.pas', (本机电脑的存放…
原文:WPF中不规则窗体与WebBrowser控件的兼容问题解决办法 引言 这几天受委托开发一个网络电视项目,要求初步先使用内嵌网页形式实现视频播放和选单,以后再考虑将网页中的所有功能整合进桌面程序. 播放器普遍都要有个看起来比较酷的外观,于是我就给设计了个不规则形状的带透明边框的外观,如下图: 但这个设计整合到WPF中时,却遇到了一个头疼的BUG: 只要设置窗体为AllowsTransparency="True" WindowStyle="None",内嵌的Web…
之前写过如何用 Qt 现成的方法写出无边框半透明的不规则窗体:<Qt 不规则窗体 – 无边框半透明> 其实有一个很特殊的窗体属性一直以来都伴随着不规则窗体出现,这就是本文要介绍的鼠标点击穿透.鼠标点击穿透被广泛应用在桌面挂件程序上,目的是为了避免鼠标对窗体进行误操作. Qt 并没有自带的方法可以实现该功能,所以需要调用系统本身的 API 来实现.这里介绍下 Windows 下和 Linux 下如何实现鼠标点击穿透. Windows API : SetWindowLong SetWindowLo…
首先先得瑟一下,有关WPF中不规则窗体与WindowsFormsHost控件不兼容的问题,网上给出的解决方案不能满足所有的情况,是有特定条件的,比如  WPF中不规则窗体与WebBrowser控件的兼容问题解决办法.该网友的解决办法也是别出心裁的,为什么这样说呢,你下载了他的程序认真读一下就便知道,他的webBrowser控件的是单独放在一个Form中,让这个Form与WPF中的一个Bord控件进行关联,进行同步移动,但是在移动的时候会出现闪烁,并且还会出现运动的白点,用户体验肯定不好. OK,…
在WPF中设置窗体的Topmost属性可以将窗体永远置于顶部,但是没有提供Bottommost属性将窗体置底.若果要将窗体置于桌面的最底部,就需要使用Windows API来实现了.解决方案如下: 1,引入Windows API [DllImport("user32.dll")] public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X,int Y, int cx, int cy,…
看到网上有很多不规则窗体的实现,效果很酷.于是使用QT也实现了一个,QT的不规则窗体实现非常简单,只需要设置一个mask(遮掩)图片,这个图片的格式可以使用png或bmp格式,我使用了png格式,默认窗体是矩形的,使用png图像,将需要隔离在窗体之外的区域的像素设置为白色或透明色,其他颜色的区域对应显示出来的窗体.关键代码就几行. #ifndef IRREGULARFORM_H#define IRREGULARFORM_H #include <QWidget>#include "ui…
原文:WPF界面设计技巧(1)-不规则窗体图文指南 初到园子,奉上第一篇入门级教程,请勿见笑. 以往WinForm编程中,实现不规则窗体是有一定难度的,更难的是不规则窗体的边缘抗锯齿及局部透明处理.而现在,WPF的出现使这个问题迎刃而解,使得我们可以轻松.灵活地美化用户界面. 下面就让我们来看看如何实现一个不规则窗体: 首先我们需要借助Microsoft Expression Design 2来进行图形设计.(这里使用Photoshop等传统软件也可以,但是只能利用PNG格式来实现透明,其缺点就…
原文:[小结][N种方法]实现WPF不规则窗体 WPF实现不规则窗体,方法很多很多多.... 本文总结DebugLZQ认为简洁高效的几种方法 实现WPF不规则窗体的几种常用的方法如下: 1.使用Blend等工具绘制一想要的窗体.这个可以参考xiaowei0705的这篇博文:WPF制作不规则的窗体 . 2.给window的Clip属性赋Path值.这个可以参考DebugLZQ前面的博文:WPF Effect Clip以及Transform . 3.使用透明背景的PNG图像. 4.为Window主容…
我们在工作中,经常会需要画一些不规则的窗体,现在总结如下. 一.利用VisualBrush实现.这依赖于VisualBrush的特性,任何控件可以作为画刷,而画刷又可以作为背景. 此种方法可以用于实现一些文字窗体等.(注意设置窗体的透明属性) 例如: <Window x:Class="IconFontTest.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x…
目录区域: wpf 客户端[JDAgent桌面助手]业余开发的终于完工了..晒晒截 wpf 客户端[JDAgent桌面助手]开发详解-开篇 wpf 客户端[JDAgent桌面助手]开发详解(一)主窗口 圆形菜单 类似桌面宠物的工具 之前有微软的office助手和瑞星的卡卡助手,以及腾讯QQ配套的QQ桌面宠物: 其中微软的office助手和瑞星的卡卡助手 都是使用的 MSAgent  这个系统组件实现的,但是在win7 之后这个插件系统不在支持,需要自己安装MSAgent.exe,但是安装后能运行…
delphi实现窗体闪烁功能 以前做窗口闪动时都没有考虑到让任务栏上的按钮闪动的问题, 现在一个客户需要任务栏按钮闪动,发现以前使用的flashwindow不能达到要求了, 查找了一下,找到flashwindowex这个API 如果您创建的应用程序是运行在Windows 98或更高版本操作系统上,您可以通过调用API函数FlashWindowEx并赋给它一个FlashWInfo结构体来实现. 而如果是运行在Windows 95上则比较麻烦, 但您也可以通过使用一个Timer组件来实现想要的效果.…
Delphi中窗体的事件 Form窗体可以响应各种各样的时间,在Object Inspector的Events页面中罗列了一大堆,如下图: 下面将要列出一些常用的事件. 1.OnActivate 当窗体被初始激活时,就会发生OnActivate事件,当初始创建窗体或者用户从一个窗体切换到另一个窗体时,就可能激活窗体,Application对象也有一个OnActivate事件,当用户从一个应用程序切换到另一个应用程序时,就会产生此事件. 2.OnClose和OnCloseQuery 当关闭一个应用…
实现一个不规则窗体 这里我们实现一个圆形窗体,实现其他形状的窗体与这个方法类似. 首先,把窗口的高度(height)和宽度(width)值修改为相同的值,使窗口成为一个正方形. 其次,把窗口的透明属性(transparent)设置为true,这样设置之后窗口还是正方形的,但只要我们控制好内容区域的Dom元素的形状,就可以让窗口看起来像一个不规则形状一样. 不规则窗口往往需要自定义边框和标题栏,所以frame也设置为false. 另外,透明的窗口不可调整大小.所以将resizable属性设置为fa…
制作多边形窗体的关键在于设定多边形的区域,并根据这个指定的区域改变窗体的形状.Windows的CreatePolygonRgn和SetWindowRgn函数可以解决这两个难点.利用以下代码即可将窗体设置为一个五边形:procedure TForm1.FormCreate(Sender: TObject);var pt: array [0..4] of TPoint; m_rgn: HRGN;beginpt[0].x:=self.Width div 2;pt[0].y:=0;pt[1].x:=0;…
  今天在打开一个Delphi窗体时报了这么一个错误: Corrupt Portfolio Stream 查了一下,主要是由于Delphi窗体的*.ddp文件损坏引起的. 解决方法: 删除.ddp 文件,重新打开窗体即可. 有时候还是不行,这个时候用记事本打开 那个.dfm文件,通常窗体都是以Text形式存储的,如果发现是二进制代码,那么八成窗体文件也坏了,这个时候删除这个窗体文件, 把 *.~dfm备份文件改名字成 *.dfm ,然后就可以了. 关于*.ddp file, Delphi Dia…
在窗体依据屏幕分辨率自适应调整尺度方面,昨天的工作可以说是一个突破点.昨天的工作找到了长期以来我的原有方案的问题所在,这是非常关键的.但是昨天晚上的解决方案并不完美,今天的这个才是比较完美的解决版. 先补充说明一下这个问题的重要性.这本来只是一个很小的技术问题,但在现有的Windows软件开发过程中,这个问题非常常见.一些非常著名的商业化软件,也会发现这方面的问题.Delphi的IDE本身在不同屏幕分辨率的机器上运行时,有些界面也会出现变形和控件找不到的情况:Adobe是家软件大公司,他的PDF…
1.准备一个不规则的位图 可以使用任意一种你喜欢的作图工具,制作一个有形状的位图,背景使用一种其他的颜色.这个颜色在编程中用得着,所以最好使用一种容易记忆的颜色.如黄色,文件名为bk.bmp 2.创建窗体并设置属性 1)将 FormBorderStyle 属性设置为 None. 2)将窗体的 BackgroundImage 属性设置为先前创建的位图文件.不必将文件添加到项目系统中,这将在指定该文件作为背景图像时自动完成. 3)将 TransparencyKey 属性设置为位图文件的背景色,如:黄…
在使用delphi创建模态窗体的时候最小化窗体会导致最小化的窗体不可见,再次点击主窗体才会显示. 在这个模态窗体中增加以下函数 procedure WmSysCommand(var msg: TMessage); message WM_SYSCOMMAND; procedure TForm1.WmSysCommand(var msg: TMessage); begin inherited;//必须加,否则模态窗关闭最大化还原将不能用 if msg.WParam = SC_MINIMIZE the…
Delphi中新建一个Form或者Frame时,它的字体都是西文习惯,这样就有可能造成在其他机器上由于字体的原因,窗体十分不美观.怎样才能为Delphi设置一个默认窗体,让它的字体Font符合中国习惯呢,而不用新建时再手工去修改窗体的Font,下面就是解决这个问题的方法.并且随之引出了Delphi的一个非常好的功能:1.新建窗体符合中国字体习惯 (1)一定要将窗体的Font属性修改为: (字体) 宋体, (大小) 9号(也就是小五), (字符集) CHINESE_GB2312 以符合中国的字体习…
对话框ShowModal之后不能操作其它窗口,实际上是因为Windows Disable了其它窗口.所以当你需要在模态对话框中访问其它已经可见的窗口时,需要用EnableWindow API来激活对应的窗口. 例如: form2.showmodal; 在form2的OnShow事件中: enablewindow(form1.handle,true); 如何使用Show方法来显示一个模态窗口 我们知道在Delphi中显示一个窗口有两种方式,模态方式显示(ShowModal)和非模态方式显示(Sho…
很简单了 现在,适用所有控件和窗体: delphi设置窗口透明 form1.AlphaBlend :=true; //透明form1.AlphaBlendValue :=180; //透明度form1.TransparentColor :=true; //透明颜色 ------------------------------------------------------------- 帖子1:http://zhidao.baidu.com/link?url=PC1llYKS1ak_QaRvMK…
unit xDrawForm; interface uses Windows, Messages, SysUtils, Classes, Controls, Forms, Menus, Graphics,GDIPOBJ,GDIPAPI,GDIPUTIL; type TwwGDIImage = class public n_Pos_X : Integer; n_Pos_Y : Integer; n_Width : Integer; n_Height : Integer; GPImageNormal…
delphi 窗体阴影 放窗体创建事件里面 SetClassLong(Handle, GCL_STYLE, GetClassLong(Handle, GCL_STYLE) or CS_DROPSHADOW); 采用API画圆角的窗体! 圆角窗体一(四角都是圆角的)采用CreateRoundRectRgn,SetWindowRgn函数就可实现!函数参数如下: 函数一: int SetWindowRgn;(HWND hWnd, HRGN hRgn, BOOL bRedraw) 参数 hWnd [在]…
一定有很多人看到过一些奇形怪状的窗体,例如一些屏幕精灵.其实实现起来非常容易,做到三点就好啦.下面我使用Delphi做了一个VCL控件(TBmpShape),你只需要指定一幅图片就可以将窗体变成你的图片的形状. 1.准备一幅位图图片,一定要BMP格式的 2.将VCL控件放在你的窗体(FORM)上,注意不能是其他的容器,设置PICTURE属性,指定制作好的图片. 3.设置图片的背景颜色,必须是你的图片的背景颜色准确值 4.在本窗体的FormCreate事件中写一行代码 BmpShape1.Appl…
1.在窗体的public区写下这一句: Procedure CreateParams(var Params :TCreateParams);override;2然后把光标停在这一行上,按下Ctrl+Shift+C,在出现的代码块里写上 inherited CreateParams(Params); if BorderStyle = bsNone then with Params do Style := Style or WS_THICKFRAME; Delphi中函数的覆盖记得在函数声明后面要加…
设计思路:1.使用定时器(Timer)来监控鼠标位置和窗体位置,并实现窗体的停靠和隐藏2.当鼠标拖动窗体时,窗体才有可能根据自身位置决定是否停靠3.如果窗体四周没有接触到屏幕边缘则不会停靠4.如果窗体最小化或最大化了则不存在停靠和隐藏5.如果鼠标拖动窗体时,如果窗体很接近屏幕边缘则自动将其停靠在该边缘,例如窗体离屏幕顶部小于4个像素则自动将其停靠在顶部6.窗体可以在桌面的左侧.右侧和顶部停靠和隐藏7.如果既满足顶部停靠的条件又满足侧面停靠的条件,则规定其向侧面隐藏8.当鼠标位于窗体内部时,窗体不…
实现原理是启动一个应用程序,通过ProcessID得到窗体句柄,然后对其设定父窗体句柄为本程序某控件句柄(本例是窗体内一个Panel的句柄),这样就达成了内嵌的效果. 本文实现的是内嵌一个记事本程序,如下图: 在实现细节上需要注意几点: 为了美化程序的嵌入效果,需要隐藏其标题栏 在外部窗体大小变化时,需要内嵌的窗体也随之变化大小 外部程序退出时,内嵌的程序也要退出 下面是例子程序.新建窗体,上面放置一个Panel控件,名为pnlApp,然后按下面代码编写: ? unit frmTestEmbed…
效果截图: 这几天静心学java,由于学的不是很好,也没有什么有什么可以作品,但是毕竟也算刚开始认真学,也遇到了好多问题: 首先 1. JFrame的无边框设置:JFrame.setUndecorated(true);这个属性网上提到的很多:是在JFrame在显示情况下(JFrame.setVisible(true);)能去掉JFrame默认的标题和边框. 2.背景图形设置:com.sun.awt.AWTUtilities.setWindowShape(Window w,Shape s);这个是…
PS:因为我现在用的电脑是WIN7 64位系统,所以没有实现功能,不知道XP是否可行. //1.定义方法 procedure WMNCPaint(var Msg : TWMNCPaint); message WM_NCPAINT; //2.实现方法 procedure TForm1.WMNCPaint(var Msg: TWMNCPaint); var dc:hDc; Pen:hPen; OldPen:hPen; OldBrush:hBrush; begin inherited; //获取本窗口…