易语言怎样实现让自己程序窗口嵌套到别的程序窗口中

易语言怎样实现让自己程序窗口嵌套到别的程序窗口中,第1张

你可以使用API命令的轩父窗口来完成。

如果不会的话,也可以用精易模块的窗口_置父来完成。

子窗口句柄即为你自己程序的句柄,父窗口句柄为你要嵌入程序的窗口的某个组件的句柄。

这个方法主要用来把别人的程序嵌到自己的程序中,主要是由于别人的程序组件各项属性我们控制不了,所以很难达到我们满意的效果。而自己的程序则可随意调整,就不存在这个问题。

(1)用窗体的静态方法作为显示窗体和使用窗体功能的入口

一个窗体往往会显示其他窗体以实现一定的功能。通过在被调用窗体中实现一个静态函数供调用窗体使用可以简化窗体间的交互,隐蔽被调用窗体的数据,从而加强封装特性。

如主窗体为FormMain,被调用窗体为FormChild。在FormChild中实现一个静态方法:

Static void DoSomething()

{

new FormChild.ShowDialog()

//实现功能

//…

}

在主窗体中调用被调用窗体的DoSomething()方法:

FormChind.DoSomething()

这样就可以显示被调用窗体并由被调用窗体执行预设的功能,并且该静态函数封装了构造和初始化被调用窗体的逻辑。程序的结构更加清晰,类的职责更加明确。

(2)判断用户在对话框中点击的按钮

对话框的ShowDialog方法会返回DialogResult类型的返回值。DialogResult是枚举类型,通过检查该枚举值,即可知道用户是通过单击哪个按钮关闭对话框的。

例如,要检测用户是否是单击了OK按钮从而关闭文件对话框,可以使用如下代码:

if (this.openFileDialogPhoto.ShowDialog()==DialogResult.OK)

{

}

(3)将数据库中读取的照片文件显示在控件中

从数据库中读取照片,照片的列row.phptoImage是byte 数组类型。要将照片直接显示在控件中,而非先存储在硬盘上再调入控件显示,需要使用MemoryStream类。具体方法如下:

MemoryStream mstream

if(row.photoImage.Length!=0)

{

mstream=new MemoryStream(row.photoImage)

this.picPhoto.Image= new Bitmap(mstream)

}

(4)使用 Command 对象的 ExecuteScalar 方法

一般使用 Command 对象的 ExecuteReader 方法来将数据库的返回结果保存在 DataReader 中。如以下代码所示:

dbReader = cmd.ExecuteReader();

但如果返回结果是单个标量值,如一个整数或一个字符串,则可以执行 Command 对象的 ExecuteScalar 方法直接获取该值。

编码示例如下:

byte b

b = (byte)cmd.ExecuteScalar()

(5)为 Command 对象添加参数的两种方法

这两种方法其实是 Parameters 对象的 Add 方法的两种变体。第一种方法比较简单,就是直接使用 Add 方法添加参数,并同时指定参数的类型和值。代码如下:

cmd.Parameters.Add("@EmpID",System.Data.SqlDbType.Int).Value = iEmpID

另外一种方法比较复杂,它需要先声明一个 SqlParameter 类型的对象,然后使用 Add 方法添加该参数对象。这种方法便于调试。代码如下:

SqlParameter paramEmpID = new SqlParameter("@EmpID", System.Data.SqlDbType.Int)

paramEmpID.Value = strSelfIntro

cmd.Parameters.Add(paramEmpID)

(6)解决Typed DataSet中空字段值的问题

Typed DataSet可以大大提高开发的效率。但是在某个字段值为空的情况下,使用Typed DataSet读取该字段会引发系统异常。要解决这个问题有两种方法:

1)在数据库中为所有运行为空的字段设置缺省值

2)修改VS.NET自动生成的XSD文件

在这里仅介绍第二种方法。对于值可以为空的字段,XSD文件中原来的描述应该类似如下代码(其中DeptName、Title和Telephone字段在数据库中可以为空值):

<xs:elementname="Name"type="xs:string"/>

<xs:elementname="LoginName"type="xs:string"/>

<xs:elementname="Email"type="xs:string"/>

<xs:elementname="DeptName"type="xs:string"minOccurs="0"/>

<xs:elementname="Title"type="xs:string"minOccurs="0"/>

<xs:elementname="Telephone"

文章出处:http://www.diybl.com/course/4_webprogram/asp.net/netjs/2007921/72800.html

如果是单纯的程序调用通过你的软件去打开IE或者FIREFOX倒比较好办。

但是你要在窗体里面调用别人的浏览器那么你首先的获得别人的实例。

应用程序都是封装了的,如果提供接口给你了,别人的安全性怎么保证?

当然,如果有高手或者黑客另算,反正个人觉得,这事不靠谱!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12145596.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存