例子:
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的焦点。不知道我说的是否明白,还请大家给出建议,我已经困扰好几天了。

解决方案 »

  1.   

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

  2.   


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

  3.   

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

  4.   

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

  5.   

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