我不知道全透明的窗口有什么用,但毕竟作为一种技巧,还是拿出来说说吧。下面这个例子演示如何显示透明的窗口.同时也介绍了如何捕获屏幕.必须把Form1的BorderStyle属性置为bsNone
Delphi
unit homepage_coolform;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs
ExtCtrls, StdCtrls, Buttons;
type TForm1 = class(TForm)
procedure FormPaint(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private { Private declarations }
public { Public declarations }
hbmp:integer;
end;
var Form1: TForm1;
implementation
{$R *.DFM}
function CopyScreenToBitmap(Rect:TREct):integer;
var
hScrDC, hMemDC, hBitmap, hOldBitmap:integer;
nX, nY, nX2, nY2: integer;
nWidth, nHeight:integer;
xScrn, yScrn:integer;
begin
if (IsRectEmpty(Rect)) then
begin
result:= 0;
exit;
end; // 获得屏幕缓冲区的句柄.
// a memory DC compatible to screen DC
hScrDC:= CreateDC('DISPLAY', pchar(0), pchar(0), PDeviceModeA(0));
hMemDC:= CreateCompatibleDC(hScrDC);
// get points of rectangle to grab
nX := rect.left;
nY := rect.top;
nX2 := rect.right;
nY2 := rect.bottom;
// get screen resolution
xScrn:= GetDeviceCaps(hScrDC, HORZRES);
yScrn := GetDeviceCaps(hScrDC, VERTRES);
//make sure bitmap rectangle is visible
if (nX
nX :="0;"
if (nY
nY :="0;"
if (nX2> xScrn) then
nX2 := xScrn;
if (nY2 > yScrn) then
nY2 := yScrn;
nWidth := nX2 - nX;
nHeight := nY2 - nY;
// create a bitmap compatible with the screen DC
hBitmap := CreateCompatibleBitmap(hScrDC, nWidth, nHeight);
// select new bitmap into memory DC
hOldBitmap := SelectObject(hMemDC, hBitmap);
// bitblt screen DC to memory DC
BitBlt(hMemDC, 0, 0, nWidth, nHeight, hScrDC, nX, nY, SRCCOPY);
// select old bitmap back into memory DC and get handle to
// bitmap of the screen
hBitmap := SelectObject(hMemDC, hOldBitmap);
// clean up
DeleteDC(hScrDC);
DeleteDC(hMemDC);
result:= hBitmap;
end;
procedure TForm1.FormShow(Sender: TObject);
Var
rect:TRect;
p:TPoint;
begin
rect:=ClientRect;
p:=ClientOrigin;
rect.left:=p.x;
rect.top:=p.y;
rect.bottom:=rect.bottom+p.y;
rect.right:=rect.right+p.x;
hbmp:=copyScreenToBitmap(rect);
inherited;
end;
procedure TForm1.FormPaint(Sender: TObject);
var
bitmap:TBitmap;
rect:TRect;
begin
bitmap:=TBitmap.create;
bitmap.handle:=hbmp;
rect:=ClientRect;
canvas.draw(rect.left,rect.top,bitmap);
bitmap.handle:=0;
bitmap.free;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DeleteObject(hbmp);
end;
end.
相关推荐
5、易语言中如何制作透明窗口GIF。 基础设置: 窗口为无边框 添加一个图片框 图片框的播放为真 GIF图片添加数据到图片框中 -------------------基础DLL源码:.(该部分复制到源码dll中) 版本 2 .DLL命令 设置透明, ...
5、易语言中如何制作透明窗口GIF。基础设置:。窗口为无边框。添加一个图片框。图片框的播放为真。GIF图片添加数据到图片框中。-------------------基础DLL源码:.(该部分复制到源码dll中)。版本 2。.DLL命令 设置...
1. **设置全透明**:通过将`WindowStyle`设置为None,可以使窗口无边框,这样我们就可以自定义窗口的形状。接着,设置`Opacity`属性为0,使窗口完全透明,然后通过一个渐变动画从0到1增加窗口的不透明度,以实现淡入...
在Qt开发中,创建遮罩窗口(Mask Window)通常用于实现一些特定的视觉效果,比如在主窗口上显示一个半透明或全透明的覆盖层,用于提示用户、加载数据或者进行其他交互操作。Qt框架提供了丰富的功能来实现这样的效果...
在编程领域,透明窗口是一种常见的视觉效果,可以让用户界面(UI)更加美观和现代。易语言,作为一款中文编程环境,提供了实现窗口透明化的功能。本教程将详细讲解如何使用易语言来创建一个具有透明效果的窗口。 ...
淡入淡出渐变的VB透明窗口特效源码,刚装载时全透明,载入时逐渐显示,窗体打开时由模糊变清淅,慢慢渐变显示出来,关闭时,由清淅变模糊,慢慢消失。同时还演示了另外一种无边框无标题栏的图文渐变窗体,点击主窗口...
标题“WIN7全透明效果系统监测”涉及到的是Windows 7操作系统中的一个特色功能,即 Aero Glass 透明效果。这项功能让Windows 7的界面看起来更加现代和美观,它赋予了窗口边框、任务栏以及开始菜单半透明的效果,使得...
1.2 制作Splash窗口 -- Splash 1.3 制作美观的状态条 -- StatusBar 1.4 创建图标栏应用 -- Systray 1.5 MDI窗口显示背景图片 -- MDIBmp 1.6 窗口中控件显示ToolTips -- ToolTips 1.7 打造不一样的命令按钮 -- ...
在C#编程中,创建一个具有鼠标穿透功能的半透明窗体是一项常见需求,尤其是在开发桌面应用时,可能需要实现类似“浮动面板”或者“工具提示”等效果。本篇文章将详细探讨如何实现这一功能。 首先,让我们了解什么是...
Adobe Premiere Pro CC 2019 是一款强大的非线性视频编辑软件,广泛应用于电影、电视和网络的视频制作。本教程将全面讲解这款软件的基础知识和操作技巧,帮助初学者快速上手。 1.1 Premiere Pro CC 2019 概述 - **...
修改扩展界面支持库一,禁止透明标签在父窗口刷新时自动刷新,以解决其导致窗口刷新缓冲的问题。 8. 改进应用接口支持库中“设置屏幕分辨率”命令。 9. 修改外部数据库在“表中记录数为零”时可能导致程序崩溃的...
制作GIF透明动画窗口教程 使用工具: AE软件 GIF录制工具 易语言透明源码/模块 ...5、易语言中如何制作透明窗口GIF。 基础设置: 窗口为无边框 添加一个图片框 图片框的播放为真 GIF图片添加数据到图片框中
在这张贴图中,白色表示全透明区域,而黑色表示不透明区域。此贴图用于模拟水深的变化,增强视觉效果的真实感。 ##### 2. 导入与调节 - **导入水面模型**:在VES编辑器中打开场景工程文件,通过“场景”菜单下的...
黑色部分在运算后会变为全透明,白色部分保持原样。这一步将确定哪些区域需要透明。 2. **OR运算**:然后,将前景图与第一步AND运算后的结果进行SRCPAINT(源PAINT)运算。前景图中的颜色与已经透明化了的背景图相...
8. 新开窗口:适当使用新窗口打开链接,避免打断用户流程。 9. 路径设计:设计直观的导航路径,使用户轻松完成任务。 总之,创建一个成功的网站不仅要注重技术实现,更要在用户体验上下功夫。从视觉、浏览、信任到...
在VC++编程环境中,制作透明图片的关键在于理解并应用掩码位图(Mask Bitmap)的概念。掩码位图是一种特殊的技术,它允许我们创建具有透明或半透明效果的图像,这些效果在图形用户界面(GUI)中非常常见,用于提供更...
例如,我们可以将一个颜色的alpha通道设置为非全透明(如128,表示50%的透明度),然后用这个颜色填充菜单项,这样用户就可以看到选中项背后的界面,同时还能清晰地看到选中状态。 接着,我们讨论"2、窗体透明"。...
总的来说,"win7主题 一见倾心(李权制作)"是一个专为Windows 7设计的美观且具有全透明效果的主题,提供了一种个性化的桌面美化方案,体现了制作者对设计美学的理解和追求。用户在享用的同时,也要注意系统的安全性和...
根据给定的文件信息,我们可以总结出以下关于网页制作,特别是使用Dreamweaver进行网页设计的相关知识点: ### 网页的创建与存储 #### 创建网页 - 在首次启动Dreamweaver CS4时,用户会被提示选择“编码区”或...