声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 958|回复: 2

[GUI界面] 两界面按钮互控时句柄传递的问题

[复制链接]
发表于 2008-1-16 14:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我问过这样的问题,大虾们给我的解释是使用句柄,我试着去做了,而且定义了一个全局句柄也不行
我的程序是这样的:用了好多方法和途径,主要有以下两种:
1、第一个途径:
1)在第一个figure文件(figure1)的OutputFcn函数中定义了:
global gHBtnSet;                                                            % “参数设置”按钮句柄的全局变量
gHBtnSet = handles.pBtnSet;
执行效果:正常通过,并且执行到。
2)然后在figure1文件中的“参数设置”按钮的回调函数中,调用如下程序:
Set(gHBtnSet, 'Enable', 'off');
执行效果:“参数设置”按钮变为不激活状态。
3)然后在另一个figure文件(figure2)的“确定”按钮回调函数中调用如下程序:
% 将参数设置和导入数据按钮置于激活状态。
Set(gHBtnSet, 'Enable', 'on');
执行效果:报错,如下:
??? Error using ==> SetDlgMain('pBtnOk_Callback',gcbo,[],guidata(gcbo))
Undefined function or variable 'gHBtnSet'.
失败了...
2、第二个途径
1)、2)步骤不变
3)我在第二个figure文件(figure2)的OutputFcn函数中也定义了:
global gHBtnSet;                                                            % “参数设置”按钮句柄的全局变量
gHBtnSet = handles.pBtnSet;
同时,在figure2的“确定”按钮回调函数中调用如下程序:
% 将参数设置和导入数据按钮置于激活状态。
Set(gHBtnSet, 'Enable', 'on');
执行效果:
执行1)过程时,效果与1途径相同。
执行2)过程时,出错,如下:
??? Error using ==> Main('pBtnSet_Callback',gcbo,[],guidata(gcbo))
Reference to non-existent field 'pBtnSet'.
??? Error while evaluating uicontrol Callback
执行3)过程时,自然和1途径一样了,出现与1途径同样的错误。

各位大虾我知道肯定是我做的程序不对,我把我这个详细的过程贴出来,只想能求得大虾们的详细答案,即使你们认为这个问题很简单,也希望能帮帮我这个菜鸟。试了好多途径也行不通,请各位帮帮忙。

[ 本帖最后由 eight 于 2008-1-21 20:15 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-1-16 17:34 | 显示全部楼层
直接用一个figure控制另一个figure里控件的状态应该是不可能实现的,提示Undefined function or variable 'gHBtnSet'.说明参数传递有问题,全局变量要在每个文件里进行定义

评分

1

查看全部评分

 楼主| 发表于 2008-1-17 08:54 | 显示全部楼层
是啊,我上面的程序错误就是出现在这里,全局变量声明对了,那用一个figure中的控件去控制另一个figure里的控件就可以实现了

谢谢你的解答。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-21 01:11 , Processed in 0.047522 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表