欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 心得体会 > 创建窗体的心得体会

创建窗体的心得体会

时间:2013-07-20 21:21

数据库创建窗体的方法有几种

他们的优缺点

1.使用窗体向导2.使用设计视图3.创建基于多表的窗体

不规则窗体是怎样创建的

创建不规则窗体经验总汇- -很多人都很热衷于创建形状奇怪的窗体。

而且不断的有热心的家伙们将他们的发现放到我们这里与大家分享。

今天我将我所知道的方法总结一下。

希望对大家有所帮助。

一般来说,要创建一个不规则的窗体。

我们需要使用一个Win32 API: SetwindowRgn。

这个API您可以在Api浏览器中找到。

这个Api的作用就是将窗体的“剪”成一个指定的形状。

下面是这个Api声明于解释: Declare Function SetWindowRgn Lib user32 (ByVal hwnd As Long,ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long 它有三个参数。

第一个(hWnd)是用来指定被剪切的对象的句柄,比如Picture图形框等, 我们一般就是用窗体的hWnd属性; 第二个(hRgb)指明剪切的形状, 即指定的几何图形特征, 此参数也必须由相应的API 函数提供说明。

用那些APi可以创建一个您想要的区域(窗体的形状)。

然后这些Api会返回一个数值。

这个数值就是这个形状在Windows中的句柄(可以理解为身份证号码)。

SetWindowsRgn可以通过这个数值来找到我们创建的那个区域; 第三个(bRedraw)是一个布尔变量, 一般可设置为真(True)。

看来仅仅有SetWindowsRgn还不行。

我们还必须创建一个区域。

创建区域可以使用如下的一些Api: CreateRectRgn : 建立矩形区域,其参数分别为矩形的左上角坐标及右下角坐标。

但是由于窗体默认就是一个矩形,所我们应该用不到它;CreateRoundRectRgn:建立圆角矩形区域,其参数分别为左上角及右下角坐标, 还有圆角直径等, 当圆角直径接近或超过矩形的长度时, 将呈现为圆或椭圆形;CreateEllipticRgn :建立椭圆矩形区域,参数分别椭圆的约束矩形左上角与左下角顶点的坐标;;所以现在我们就可以创建一下形状比较简单的窗体了。

比如下面的代码我们就创建了一个椭圆形的窗体: Option Explicit 'Win32 Api 的声名 Private Declare Function CreateEllipticRgn Lib gdi32 Alias CreateEllipticRgn (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Private Declare Function SetWindowRgn Lib user32 (ByVal hwnd As Long,ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long Private Sub Form_Load()Dim Result As Long '声明变量用于保存“区域”的句柄Me.ShowResult = CreateEllipticRgn(0, 0, 300, 200) '创建“区域”并将其句柄保存到变量中SetWindowRgn Me.Hwnd, Result, True '根据前面创建的区域对窗体进行“剪裁” End Sub 但是你要说,我想创建的窗体是一个人的形状或者是其他的不规则的形状呀

是的,上面的方法只能创建一些简单的几何图形。

创建比较复杂形状的窗体我们仍然需要使用SetWindowRgb这个Api来对窗体进行“剪裁”。

但是我们需要用其它的Api来创建复杂的“区域”。

一般的,我们会用到下面的Api。

这些Api配合使用就会得到复杂形状的区域。

从而我们可以使用SetWindowRgb裁出窗体。

CreatePolygonRgn : 用于通过连接各个点来创建一个区域 CombineRgn: 用于对两个区域进行运算。

比如合并两个区域或这是将两个区域相减、求交集等等。

下面我们来详细的介绍一下这两个Api: CreatePolygonRgb Declare Function CreatePolygonRgn Lib gdi32 Alias CreatePolygonRgn (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long 参数一(lpPoint): POINTAPI类型的变量。

POINTAPI是一个用于描述点坐标的结构。

他有两个成员x与y。

您可以在Api浏览器中找到它。

在这里我们需要一个数组,并将这个属组的第一个元素作为这里的参数。

参数二(nCount): 区域顶点的个数。

比如一个三角形的区域有三个顶点。

我们应该根据这个参数来确定上一个参数使用的数组的大小; 参数三(nPolyFillMode): 指定区域的填充模式。

我们可以使用两个常量作为参数:ALTERNATE和WINDING。

这两个常量可以在Api浏览器中找到。

我们在这里可以直接使用1. CombineRgb Declare Function CombineRgn Lib gdi32 Alias CombineRgn (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long 参数一(hDestRgn): 目标区域的句柄; 参数二(hSrcRgn1): 源区域一的句柄; 参数三(hScrRgn2): 源区域二的句柄。

参数四(nCombineMode): 合并模式。

我们可以在Api浏览器中到这些常量作为它的参数: RGN_AND Creates the intersection of the two combined regions. RGN_COPY Creates a copy of the region identified by hrgnSrc1. RGN_DIFF Combines the parts of hrgnSrc1 that are not part of hrgnSrc2. RGN_OR Creates the union of two combined regions. RGN_XOR Creates the union of two combined regions except for any overlapping areas. 好了,下面我们来创建一个沙漏形的区域。

Option Explicit 'Win32 API的声明 Private Declare Function CreatePolygonRgn Lib gdi32 (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long Private Declare Function CreateEllipticRgn Lib gdi32 (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Private Declare Function SetWindowRgn Lib user32 (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long Private Type POINTAPI x As Long y As Long End Type Private Sub Form_Load() '声明变量 Dim Result As Long Dim Points(5) As POINTAPI '更改窗体大小 With Me .Width = 5000 .Height = 10000 End With '将区域的顶点坐标存入变量 Points(0).x = 0 Points(0).y = 0 Points(1).x = 300 Points(1).y = 0 Points(2).x = 175 Points(2).y = 300 Points(3).x = 300 Points(3).y = 600 Points(4).x = 0 Points(4).y = 600 Points(5).x = 125 Points(5).y = 300 '创建区域 Result = CreatePolygonRgn(Points(0), 6, 1) '“裁剪”窗体 SetWindowRgn Me.hwnd, Result, TrueEnd Sub 另外,我们还应该注意一个Win32 Api:DeleteObject。

我们用Api创建了一个区域。

虽然不可见,但是它却是一个对象。

如果我们不将其删除,它就会存在于系统中消耗系统资源,所以我们不用的时候就应该将它删除掉。

这个Api只有一个参数就是指定要删除对象的句柄。

谁知道C#创建不规则窗体的几种方式

现在,C#创建不规则窗体不是一件难事,下面总结一下: 一、自定义窗体,一般为规则的图形,如圆、椭圆等。

做法:重写Form1_Paint事件(Form1是窗体的名字),最简单的一种情况如下:System.Drawing.Drawing2D.GraphicsPath shape = new System.Drawing.Drawing2D.GraphicsPath();shape.AddEllipse(0,0,this.Height, this.Width);this.Region = newRegion(shape);即重绘窗体的规则。

二、利用背景图片实现 1. 设置窗体的背景图片,其中背景图片是24位(不包括24)以下的位图(BMP图片),并且要设置TansparencyKey的值,一般为你背景图片的背景色,即创建不规则图片时的底色,一般设为你图片中没有的颜色。

这种做法的不好的地方就是背景图片一定要16位或者更低的,而且还要确保客户端的显示。

如果监视器的颜色深度设置大于 24 位,则不管 TransparencyKey 属性是如何设置的,窗体的非透明部分都会产生显示问题。

若要避免出现这种问题,请确保“显示”控制面板中的监视器颜色深度的设置小于 24 位。

当开发具有这种透明功能的应用程序时,请牢记应使您的用户意识到此问题。

实现步骤如下:1. 新建windows application2. 选择窗体,找到BackgroundImage属性,点击打开新的窗口,选择下面的导入资源文件,选择你的不规则的BMP图片3. 找到窗体的TansparencyKey,将它设置为你背景图片的背景色(如黄色)4. 找到窗体的FormBorderStyle,将其设置为none,即不显示标题栏5. 运行 2. 跟背景图片一样的图形,不过是动态加载,遍历位图以实现不规则窗体。

它的原理是这样的,在Form的load事件中写方法使得窗体的描绘区域发生改变。

实现步骤如下:1. 建立winform应用程序2. 找到窗体的Load事件,双击进行编辑3. 编写方法,主要的代码如下: 代码 4. 运行 三、调用类库实现主要就是根据一些坐标,然后根据这些坐标绘制窗体代码如下: 代码 当然,我们也可以自定义窗体的动作,如按着某个轨迹一定,下面的代码中的BackgroundForm程序中就小试了一下,效果还不错,下面是这些程序的效果图(有点乱)和代码:

简述ACCESS中设计视图建立窗体的步骤

窗体、报表、宏1.将窗体fEmp上文框tSS改为组合框类型,保持控件名称不变。

设置其相关属性实现下拉列表形式输入性别男和女。

【操作步骤】步骤1:选中窗体对象,右键单击fEmp选设计视图】。

步骤2:右键单击控件名tSS选择【更改为】|【组合框】,右键单击tSS选择属性,在行来源类型中选中值列表,在行来源中输入男;女,关闭属性界面。

2.将窗体对象fEmp上文本框tPa改为复选框类型,保持控件名称不变,然后设置控件来源属性以输出党员否字段值。

【操作步骤】步骤1:选中tPa控件,按下Del键,将该控件删除。

步骤2:选中工具箱复选框控件,单击原tPa位置。

选中复选框标签控件,按下和Del键,将该控件删除。

3.设计报表rEmp的主体节区内tOpt复选框控件依据报表记录源的性别字段和年龄字段的值来显示状态信息:性别为男且年龄小于20时显示为选中的打钩状态,否则显示为不选中的空白状态。

【操作步骤】步骤1:选中报表对象,右键单击rEmp选择【设计视图】。

步骤2:右键单击复选框tOpt选择【属性】。

步骤3:在控件来源行输入IIf([tSex]=男And[tAge]<20,1,0),关闭属性界面。

步骤4:单击工具栏中保存按钮,关闭设计视图。

4.将报表rEmp的主体节区内tAge文本框控件改名为tYear,同时依据报表记录源的年龄字段值计算并显示出其4位的出生年信息。

注意:当前年必须用相关函数返回。

【操作步骤】步骤1:选中报

java创建带有窗体界面的简单程序

点击Form1中按钮弹出Form2窗体时,把form1传递到form2就可以在form2里控制form1了比如form2定义一个属性:public Form1 form1;Form2 frm = new Form2();frm.form1 = this;frm.Show();

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片