怎么在mcgs用户窗口中建立子窗口

怎么在mcgs用户窗口中建立子窗口,第1张

可以用脚本打开和关闭子窗口!OpenSubWnd(要打开的子窗口名,子窗口在本窗口中的X坐标,子窗口在本窗口中的Y坐标,子窗口的宽度,子窗口的高度,子窗口的类型)!CloseSubWnd(要关闭的子窗口名)。

或者创建一个窗口0和一个窗口1,增加一个按钮,在按钮属性抬起里输入!opensubwnd(窗口1,0,0,300,400,5),其中窗口1是你要d出的子窗口,然后在子窗口里增加一个按钮,在按钮属性抬起里输入!closesubwnd(窗口1)就可以了。

MCGS(MonitorandControlGeneratedSystem,监视与控制通用系统)是北京昆仑通态自动化软件科技有限公司研发的一套基于Windows平台的,用于快速构造和生成上位机监控系统的组态软件系统,主要完成现场数据的采集与监测、前端数据的处理与控制,可运行于MicrosoftWindows95/98/Me/NT/2000/xp等 *** 作系统。

功能特点

全中文可视化组态软件,简洁、大方,使用方便灵活

完善的中文在线帮助系统和多媒体教程

真正的32位程序,支持多任务、多线程,运行于Win95/98/NT/2000平台

提供近百种绘图工具和基本图符,快速构造图形界面

支持数据采集板卡、智能模块、智能仪表、PLC、变频器、网络设备等700多种国内外众多常用设备

支持温控曲线、计划曲线、实时曲线、历史曲线、XY曲线等多种工控曲线

估计你没有先获取句柄吧,先用窗口命令再用后台插件结合使用才行

获取句柄常用有三种

Hwnd

=

PluginWindowForeground()//当前窗口获取

Hwnd

=

PluginWindowMousePoint()//鼠标位置获取

Hwnd

=

PluginWindowSearch("记事本")//标题模糊查找获取

返回值:Hwnd是按键精灵默认的参数,你可以改,可以不改,一旦改全部得改

可以在任何地方插入代码

<script language="javascript">

windowonunload = function(){

windowopenerlocationreload();

}

</script>

子窗口处理完后可以调用<script>close();<script>关闭窗口。

1 最常见的就是用超连接或者是ResponseRedirect方法从一个页面转到另一个页面,这时候你在新页面中要获取父页面中的值时,必须是从URL中传值过来,也就是说使用Get方法传值的。这样传值有以下缺点:

a)所传值必须跟在URL后面,这样的数据不安全。

b)由于URL的长度有限,所以传的值也是有限的。

所以要想传递大量的数据,就必须用post来传值。因此我们想到了第二种传值的方式:

2 用Servertransfer(URL) 来实现页面的跳转。

Servertransfer()

与ResponseRedirect最大的不同就是,ResponseRedirect实际上就像在地址栏里面重新输入了要跳转页面的地址,所以他是

不保存之前页面的信息的。但是Servertransfer()完全不同,Servertransfer()就是像是在服务器端重新显示你要转到的页

面,但此前页面的信息都还保存在服务器。因此在新的页面上你仍可以得到之前页面的值。在net中可以使用PreviousPage来得到之前页面的

Page对象。这样有了Page对象你就方便的可以得到该页面上的任何值了。比如:我要找之前页面上的ID=TextBox1的值,语句为:

((TextBox)PreviousPageFindControl("TextBox1"))Text

但是上面的两种方式都是转到,之前的页面就不显示了。有的时候还有打开子窗口但是父窗口仍然存在的情况,就像我在讲__postBack()方法中的那样,子窗口是在父窗口中d出来的。

让子窗口从父窗口中d出,很容易让人想到的是用JAVAScript方法。

打开一个窗口的JAVAScript方法有两种:windowopen(); windowshowdialog()

如果在使用这两种方法打开的子窗口中获取父窗口的值,当然也有两种把值跟在URL之后传过来和直接获取父窗口的对象来取值。

对于第一种方法取值,很简单。直接使用QueryString就可以取到了。但是如上面所说这种Get传值的方式有缺点。

下面我们分别来讨论下两种方法分别通过获取父页面对象来取值得方法。

1

使用windowopen(url)来打开一个子窗口,在子窗口中获取父窗口的对象其实很简单,直接使用windowopener就可以得到父窗口的

对象,我们也是用这个方法在子窗口中调用父窗口的__postBack()方法的。比如我要获得父窗口中ID=“TextBox1”的textbox的

值。代码如下:

<script language="javascript">

var text = windowopenerdocumentgetElementById("TextBox1")value;

alert(text);

</script>

2使用windowshowModalDialog()方法来d出一个子窗口时,若想得到父窗口中的值,仍

旧使用windowopener是得不到父窗口对象的。这里我们就要在showModalDialog()方法中传入window参数。然后在子窗口中

得到这个代表父窗口的window,这样就可以随便 *** 作父窗口中的值了。

脚本如下:

在父窗口中,假如我们是在服务器控件中调用javascript代码的,你可以这样写:

PageClientScriptRegisterStartupScript(thisGetType(), "test", "windowshowModalDialog('Default4aspx',window)", true);

Default4aspx

就是子窗口的页面。这里要注意不能使用PageClientScriptRegisterClientScriptBlock()因为Block方法

会把该script脚本写在所有控件的前面,这样在页面被加载时,TextBox1控件还没有被加载,子窗口就打开了,所以在子窗口时取不到任何控件的值

的。而RegisterStartupScript()方法正好相反,他是把对应Script脚本写在所有控件的后面,所以子窗口能够得到父窗口的任何控

件的值。

如果你是在客户端写的JavaScript脚本,那就更简单了

<script language="javascript">

function popwindow()

{

windowshowModalDialog('Default4aspx',window);

}

</script>

在子窗口中可写入如下脚本:

<script language="javascript">

var vwin = windowdialogArguments; //得到window参数

var doc = vwindocumentgetElementById("TextBox1")value; //获得TextBox的值

alert(doc);

</script>

huoquchuangkou

jiange

nr = inputbox("请输入喊话内容")

Rem han

hanhua(kg)

Goto han

Sub jiange

Rem kgg

kg = InputBox("请输入喊话间隔")

kg2 = kg

If kg2 0 = 0 Then

Else

MessageBox "请输入数字,1000为1秒"

Goto kgg

End If

End Sub

Sub huoquchuangkou

Rem go

aa = 0

MsgBox("3秒内鼠标悬停到要喊话的游戏界面")

Delay 3000

Hwnd = PluginWindowMousePoint()

sval = MsgBox("鼠标放到游戏里了么?", 3, "获取游戏窗口")

If sval=7 Then

Goto go

ElseIf sval = 2 Then

MsgBox "取消成功"

EndScript

Else

End If

End Sub

Sub hanhua(a)

If aa = 1 Then

nr2 = nr & "!"

aa = 2

ElseIf aa = 2 Then

nr2 = nr & "!!"

aa = 0

Else

nr2 = nr

aa = 1

End If

PluginBkgndKeyPress Hwnd, 13

Delay 200

SayString nr2

Delay 200

PluginBkgndKeyPress Hwnd, 13

Delay a

End sub

以上就是关于怎么在mcgs用户窗口中建立子窗口全部的内容,包括:怎么在mcgs用户窗口中建立子窗口、按键精灵9怎么自动获得句柄做后台脚本、怎么实现父窗口打开子窗口,子窗口关闭后自动刷新父窗口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9667057.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存