两界面按钮互控时句柄传递的问题
我问过这样的问题,大虾们给我的解释是使用句柄,我试着去做了,而且定义了一个全局句柄也不行我的程序是这样的:用了好多方法和途径,主要有以下两种:
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 编辑 ] 直接用一个figure控制另一个figure里控件的状态应该是不可能实现的,提示Undefined function or variable 'gHBtnSet'.说明参数传递有问题,全局变量要在每个文件里进行定义 是啊,我上面的程序错误就是出现在这里,全局变量声明对了,那用一个figure中的控件去控制另一个figure里的控件就可以实现了
谢谢你的解答。
页:
[1]