Delphi 代码实现窗口透明+圆角边框

 1 procedure TfrmRemoteData.DoInvisible;  //透明
 2 var
 3   control: TControl;
 4   index, margin, X, Y, ctlX, ctlY, i: Integer;
 5   fullRgn, clientRgn, ctlRgn: THandle;
 6 begin
 7   margin := (Width - ClientWidth) div 2;
 8   fullRgn := CreateRectRgn(0, 0, Width, Height); //创建总裁剪区域
 9   X := margin;
10   Y := Height - ClientHeight - margin;
11   clientRgn := CreateRectRgn(X, Y, X + ClientWidth, Y + ClientHeight);
12   CombineRgn(fullRgn, fullRgn, clientRgn, RGN_DIFF); //合并区域,RGN_DIFF差集
13
14   for index := 0 to ControlCount - 1 do   //遍历控件
15   begin
16     control := Controls[index];
17     if (control is TWinControl) or (control is TGraphicControl) then
18       with control do
19       begin
20         if Visible then
21         begin
22           ctlX := X + Left;
23           ctlY := Y + Top;
24 //          ctlRgn := CreateRectRgn(CtlX, CtlY, CtlX + Width, CtlY + Height);
25           ctlRgn := CreateRoundRectRgn(ctlX, ctlY, ctlX+ Width, ctlY + Height, Height, Height);
26           CombineRgn(fullRgn, fullRgn, ctlRgn, RGN_OR);  //RGN_OR并集
27
28         end;
29       end;
30   end;
31   SetWindowRgn(Handle, fullRgn, True);    //设置重绘窗口
32 end;

说明:CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, arc1, arc2);

时间: 2024-11-10 13:31:34

Delphi 代码实现窗口透明+圆角边框的相关文章

Android给TextView和EditText等控件设置透明背景、圆角边框

第一种方法:在drawable文件夹下新建一个文件设置背景样式 代码: 在drawable文件夹下面新建textviewborder.xml <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#80858

QML之窗口(无边框、透明及拖拽)

1.无边框 Qt Quick 2.0 中 QQuickView代替了1.0中的QDeclarativeView. 无边框窗口代码如下: QQuickView viwer; //QQuickView继承自QWindow而不是QWidget viwer.setFlags(Qt::FramelessWindowHint); 2.窗口透明 setOpacity可设置整个窗口(包括控件)的透明度,而背景透明则应使用setColor //设置窗口颜色,以下为透明,在viwer.setSource()之前使用

Android给TextView设置透明背景、圆角边框

第一种方法:在drawable文件夹下新建一个文件设置背景样式 代码: 在drawable文件夹下面新建text_view_border.xml [java] view plaincopy <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid an

纯代码利用CSS3 圆角边框和盒子阴影 制作 iphone 手机效果

大家好,我是小强老师. 今天我们看下CSS3最为简单的两个属性. css3给我们带来了很多视觉的感受和变化,以前的图片做的事情,很多代码都能实现. 下面给大家简单介绍两种最为常见的圆角边框和盒子阴影,同时附上一个iphone 手机效果,提供大家练习. 1.border-radius 圆角矩形 语法格式: border-radius:  水平半径/垂直半径 只不过我们平时都把后面的这个垂直半径给省略了. 圆角也有连写的方法 border-radius: 左上角  右上角  右下角  左下角;  

Div圆角边框的实现例子+代码

<html> <head> <title>Div圆角边框的实现例子</title> <style type="text/css"> .b1,.b2,.b3,.b4,.b1b,.b2b,.b3b,.b4b,.b{display:block;overflow:hidden;} .b1,.b2,.b3,.b1b,.b2b,.b3b{height:1px;} .b2,.b3,.b4,.b2b,.b3b,.b4b,.b{border-l

WPF 使用Border创建圆角边框

创建圆角边框可以通过设置border的 CornerRadius 属性其边框呈现圆角样式 代码: <Border Height="50" Background="Red" CornerRadius="20,0,0,0" > 效果图: 位置说明: CornerRadius="左,右,右下,左下" 提示: 如过圆角处有颜色,请将外层容器的背景色设置为透明 Background="Transparent&quo

Swing圆角边框的实现

Swing圆角边框实现 Swing圆角边框的实现方法: package com.justplay.basic; import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.awt.Insets; import javax.swing.border.Border; /**  * Swing  * 设置圆角边框(可以自定义边框的颜色)  * 可以为button,文本框等人以组件添加边框

CentOS下Qt窗口透明效果失效,成黑色背景的问题

一.问题 Linux系统下Qt窗口的透明效果成了黑色,但同样的代码在windows机子上有透明效果,主要是修改系统的配置,仅在centos6.3及其以上版本实验过.其他系统可以相应配置. 二.问题运行图 (1)Qt透明效果,centos下运行都会出现如下图1所示. 三.解决方法 (1)窗口透明,窗口上的控件不透明,其代码设置 [html] view plain copy setAutoFillBackground(false);  //这个不设置的话就背景变黑 setWindowFlags(Qt

Delphi中正常窗口的实现

摘要: 在Delphi的VCL库中,为了使用以及实现的方便,应用对象Application创建了一个用来处理消息响应的隐藏窗口.而正是这个窗口,使得用VCL开发出来的程序存在着与其他窗口不能正常排列平铺等显得有些畸形的问题.本文通过对VCL的深入分析,给出了一个只需要对应用程序项目文件作3行代码的修改就能解决问题的方案,且不需要原有的编程方式作任何改变. 一.引言 用Delphi所提供的VCL类库编写的Windows应用程序,有一个明显不同于标准Windows窗口的特点--主窗口的系统菜单与任务