`
happmaoo
  • 浏览: 4599928 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

---===制作全透明的窗口===---

阅读更多
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>
怎样制作全透明的窗口
2000-08-01· -·逸仙时空

  我不知道全透明的窗口有什么用,但毕竟作为一种技巧,还是拿出来说说吧。下面这个例子演示如何显示透明的窗口.同时也介绍了如何捕获屏幕.必须把Form1的BorderStyle属性置为bsNone

  

  C++ Builder

  请参照Delphi的例子

 
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命令 设置...

    WPF制作的窗口启动和关闭时的动画

    1. **设置全透明**:通过将`WindowStyle`设置为None,可以使窗口无边框,这样我们就可以自定义窗口的形状。接着,设置`Opacity`属性为0,使窗口完全透明,然后通过一个渐变动画从0到1增加窗口的不透明度,以实现淡入...

    Qt实现遮罩窗口。。。。

    在Qt开发中,创建遮罩窗口(Mask Window)通常用于实现一些特定的视觉效果,比如在主窗口上显示一个半透明或全透明的覆盖层,用于提示用户、加载数据或者进行其他交互操作。Qt框架提供了丰富的功能来实现这样的效果...

    易语言实现透明窗口教程

    在编程领域,透明窗口是一种常见的视觉效果,可以让用户界面(UI)更加美观和现代。易语言,作为一款中文编程环境,提供了实现窗口透明化的功能。本教程将详细讲解如何使用易语言来创建一个具有透明效果的窗口。 ...

    淡入淡出渐变的VB透明窗口特效源码.rar

    淡入淡出渐变的VB透明窗口特效源码,刚装载时全透明,载入时逐渐显示,窗体打开时由模糊变清淅,慢慢渐变显示出来,关闭时,由清淅变模糊,慢慢消失。同时还演示了另外一种无边框无标题栏的图文渐变窗体,点击主窗口...

    WIN7全透明效果系统监测

    标题“WIN7全透明效果系统监测”涉及到的是Windows 7操作系统中的一个特色功能,即 Aero Glass 透明效果。这项功能让Windows 7的界面看起来更加现代和美观,它赋予了窗口边框、任务栏以及开始菜单半透明的效果,使得...

    PB进阶代码(很全的)

    1.2 制作Splash窗口 -- Splash 1.3 制作美观的状态条 -- StatusBar 1.4 创建图标栏应用 -- Systray 1.5 MDI窗口显示背景图片 -- MDIBmp 1.6 窗口中控件显示ToolTips -- ToolTips 1.7 打造不一样的命令按钮 -- ...

    C#鼠标穿透半透明窗体

    在C#编程中,创建一个具有鼠标穿透功能的半透明窗体是一项常见需求,尤其是在开发桌面应用时,可能需要实现类似“浮动面板”或者“工具提示”等效果。本篇文章将详细探讨如何实现这一功能。 首先,让我们了解什么是...

    Premiere-Pro-CC-实例最全ppt全套课件-完整版整套教学教程-.ppt

    Adobe Premiere Pro CC 2019 是一款强大的非线性视频编辑软件,广泛应用于电影、电视和网络的视频制作。本教程将全面讲解这款软件的基础知识和操作技巧,帮助初学者快速上手。 1.1 Premiere Pro CC 2019 概述 - **...

    易语言程序免安装版下载

    修改扩展界面支持库一,禁止透明标签在父窗口刷新时自动刷新,以解决其导致窗口刷新缓冲的问题。 8. 改进应用接口支持库中“设置屏幕分辨率”命令。 9. 修改外部数据库在“表中记录数为零”时可能导致程序崩溃的...

    制作完美的无规则无毛边的动画窗口-易语言

    制作GIF透明动画窗口教程 使用工具: AE软件 GIF录制工具 易语言透明源码/模块 ...5、易语言中如何制作透明窗口GIF。 基础设置: 窗口为无边框 添加一个图片框 图片框的播放为真 GIF图片添加数据到图片框中

    VES教程之水的制作

    在这张贴图中,白色表示全透明区域,而黑色表示不透明区域。此贴图用于模拟水深的变化,增强视觉效果的真实感。 ##### 2. 导入与调节 - **导入水面模型**:在VES编辑器中打开场景工程文件,通过“场景”菜单下的...

    【Visual C++】游戏开发笔记之六-游戏画面绘图(三)透明特效的制作方法.pdf

    黑色部分在运算后会变为全透明,白色部分保持原样。这一步将确定哪些区域需要透明。 2. **OR运算**:然后,将前景图与第一步AND运算后的结果进行SRCPAINT(源PAINT)运算。前景图中的颜色与已经透明化了的背景图相...

    网站完整制作流程-网站制作规范.docx

    8. 新开窗口:适当使用新窗口打开链接,避免打断用户流程。 9. 路径设计:设计直观的导航路径,使用户轻松完成任务。 总之,创建一个成功的网站不仅要注重技术实现,更要在用户体验上下功夫。从视觉、浏览、信任到...

    vc++掩码位图制作透明图片

    在VC++编程环境中,制作透明图片的关键在于理解并应用掩码位图(Mask Bitmap)的概念。掩码位图是一种特殊的技术,它允许我们创建具有透明或半透明效果的图像,这些效果在图形用户界面(GUI)中非常常见,用于提供更...

    简单透明模型算法

    例如,我们可以将一个颜色的alpha通道设置为非全透明(如128,表示50%的透明度),然后用这个颜色填充菜单项,这样用户就可以看到选中项背后的界面,同时还能清晰地看到选中状态。 接着,我们讨论"2、窗体透明"。...

    win7主题 一见倾心(李权制作)

    总的来说,"win7主题 一见倾心(李权制作)"是一个专为Windows 7设计的美观且具有全透明效果的主题,提供了一种个性化的桌面美化方案,体现了制作者对设计美学的理解和追求。用户在享用的同时,也要注意系统的安全性和...

    网页制作网

    根据给定的文件信息,我们可以总结出以下关于网页制作,特别是使用Dreamweaver进行网页设计的相关知识点: ### 网页的创建与存储 #### 创建网页 - 在首次启动Dreamweaver CS4时,用户会被提示选择“编码区”或...

Global site tag (gtag.js) - Google Analytics