1、我在dll中做了一个对话框(窗体类)Dialog1;
2、再用一个类(类模块)包装它:DlgOpen:
    dlgopen的显示方法为:
    public sub ShowOpen()
        dialog1.show 1,application.activewindow
    end sub
3、想在excel中用宏代码调用它
    dim md as new DlgOpen
    md.ShowOpen
  但是出错了,说"The specified object can't be used as an owner form for Show() (Error 371)
"请问,如何能让这个对话框显示为excel窗口的模态对话框?

解决方案 »

  1.   

    在我的对话框中还有一些控件,比如filelistBox,DirListBox等,没法用messagebox做的
      

  2.   

    按照错误信息,应该是excel不能作为dialog1的owner我想你是想让窗口显示在excel上面吧~
    可以去掉dialog1.show方法的第二个参数,
    然后在dialog1的form_load里面调用:Call SetWindowPos(hwnd, HWND_TOPMOST, Me.ScaleLeft, Me.ScaleTop, Me.ScaleWidth, Me.ScaleHeight, 0)这个东西怎么搞应该不用说了吧:)~
      

  3.   

    只是把它显示在上面,用setfocus也可以的,但是这样就不是模态的了,
    如果让它显示为模态的,而去掉第二个参数,那样有时候显示在excel上面,有时候又不行(大多时候不行)。