+ -
当前位置:首页 → 问答吧 → MDI焦点问题,SOS 求救!!!,急急急

MDI焦点问题,SOS 求救!!!,急急急

时间:2011-11-28

来源:互联网

例子:
1.MainForm 有一个pageControl。
2.DLL中有一个窗口类A,里面也有一个pagecotrol,还有tabsheet1和tabsheet2,类中有2个入口函数,show1,show2,
3.MainForm调用show1,show1返回句柄给MainForm,MainForm动态生成tabsheet,通过SetParent把show1的窗口放到tabsheet中。同样也打开show2.

问题如下:
现在mainForm中的pagecontrol有2个tabsheet,分别显示show1和show2,如果show1显示tabsheet1,show2也显示tabsheet1,那么在mainForm中的pagecontrol的切换没有问题,但是如果show1显示tabsheet1,show2也显示tabsheet2,那么从show1切换到show2时,会报错:cannot foucs on disable or invisible window,就是无法获取show2的tabsheet2的焦点。

不知道我说的是否明白,还请大家给出建议,我已经困扰好几天了。

作者: joel2001   发布时间: 2011-11-28

你看看你在哪里调用了setfocus查找下,你对还没显示出来的窗口设置焦点了就报这个错误

作者: ljmanage   发布时间: 2011-11-28

引用 1 楼 ljmanage 的回复:
你看看你在哪里调用了setfocus查找下,你对还没显示出来的窗口设置焦点了就报这个错误


程序运行的时候,没有报错,是在show1切换到show2后,我鼠标点击show2的tabsheet2中某个输入框报错的。而且程序中我没有用setFoucs。

作者: joel2001   发布时间: 2011-11-28

全工程搜索有沒有setFoucs,dll中也看看

作者: kaikai_kk   发布时间: 2011-11-28

报错cannot foucs on disable or invisible window,可能不是指无法获取show2的tabsheet2的焦点,而是有其他窗体的焦点问题,是否有未显示窗体要和tabsheet2一起显示?

作者: lhylhy   发布时间: 2011-11-28

引用 3 楼 kaikai_kk 的回复:
全工程搜索有沒有setFoucs,dll中也看看

如果是因为SetFoucs引起报错,那我想调试的时候会定位到这一个点,但是现在是运行程序没有报错。
我在鼠标点击输入框的时候报错的。

作者: joel2001   发布时间: 2011-11-28

引用 4 楼 lhylhy 的回复:
报错cannot foucs on disable or invisible window,可能不是指无法获取show2的tabsheet2的焦点,而是有其他窗体的焦点问题,是否有未显示窗体要和tabsheet2一起显示?


和上面一样,如果有隐藏窗体,那应该是运行的时候就报错,现在的情况是显示窗体都没问题,是在鼠标点击输入框的时候报错的。

作者: joel2001   发布时间: 2011-11-28

引用 6 楼 joel2001 的回复:
引用 4 楼 lhylhy 的回复:
报错cannot foucs on disable or invisible window,可能不是指无法获取show2的tabsheet2的焦点,而是有其他窗体的焦点问题,是否有未显示窗体要和tabsheet2一起显示?


和上面一样,如果有隐藏窗体,那应该是运行的时候就报错,现在的情况是显示窗体都没问题,是在鼠标点击输入框的时候报错的。

隐藏窗体为啥要报错?给隐藏窗体焦点才需要报错。

作者: lhylhy   发布时间: 2011-11-28