1 set myform = new form1和
  dim myform as new form1及
  static my form = new form1的区别是什么?set myform = new form1是显式产生一个form1的实例
  dim myform as new form1是声明一个变量并自动生成其实例(此时并未生成,要在第一次引用到myform这个变量时才会自动生成)
static my form = new form1与第二句基本相同,只是变量的生命期不同,它是静态变量,使用 Static 语句声明的变量会一直保持其值,直至该模块复位或重新启动。
2,用set myform = new form1和
  dim myform as new form1后,myform 从form1 中继承了什么?代码设定的属性和 方法能继承吗?
能,几乎和form1是一样的.3,为什么set myform =new form1以后,在form1中调用的windowmove API, form1不可以用,而myform却好用呢?
4,有什么办法可以让 dim myform as new form1 的每个窗体(包括form1)都实现  调用windowmove API你把API的声明写到窗体中,就应该可以解决这两个问题了

解决方案 »

  1.   

    您是说把Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, _
                                            ByVal x As Long, ByVal y As Long, _
                                            ByVal nWidth As Long, ByVal nHeightAs   Long, _
                                            ByVal bRepaint As Long) As Long
    写在form1中吗?
      

  2.   

    2,用set myform = new form1和
      dim myform as new form1后,myform 从form1 中继承了什么?代码设定的属性和 方法能继承吗?
    能,几乎和form1是一样的.
    几乎是什么意思,如果不是完全一样,区别是什么?
      

  3.   

    把API的声明写到窗体中,就应该可以解决这两个问题了。。好像不行的,再指点一下好吗?
      

  4.   

    MDIform的源代码: Private Sub menuopen_Click()
        openatable
    End SubPublic Sub openatable()
       On Error GoTo userCancelled 
       Dim response As String
      
      theFile = MapInfo.Eval("FileOpenDlg("""","""",""TAB"",""Open Table"")")
      ‘thefile 是文件路径
      
      If theFile <> "" Then
      tabName = MapInfo.Eval("PathToTableName$( """ & theFile & """ )")
       
      '获得文件名
      
      MapInfo.Do "Open Table """ & theFile & """ as " & tabName
      '在后台打开表文件,其中包含图片(地图),但不可见    Else
            Resume Next 
        End If
            
     If thereisamap Then
      
      MsgBox "新建地图窗口吗?", vbYesNoCancel + vbQuestion, "打开方式"
      response = MsgBox("新建地图窗口吗?", vbYesNoCancel + vbQuestion, "打开方式")
                
                  If response = vbYes Then
                    Set myform1 = New frmMap ‘???????????????
                    With myform1
                       .Caption = tabName
                       .Show
                    End With
                  MapInfo.Do "Set Next Document Parent " & myform1.hwnd & " Style 1"
                  '让myform1作为下面打开的document(即图片)的容器  
                  
                  MapInfo.Do "map from " & tabName 
                  '打开表中的document(图片)
                  mapid = Val(MapInfo.Eval("FrontWindow()"))
                   '获取当前document(图片)窗口的id 
                Else
                    Exit Sub
                End If
       
            Else
         
          
                 Set myform1 = New frmMap
                 With myform1
                     .Caption = tabName
                     .Show
                 End With
                 MapInfo.Do "Set Next Document Parent " & myform1.hwnd & " Style 1"
                 MapInfo.Do "Map From " & tabName
                
                 mapid = Val(MapInfo.Eval("FrontWindow()"))
                                    
                thereisamap = True
            End If   userCancelled:
         Resume Next
    End Subfrmmap的代码:
       Private Sub Form_Load()
       frmMap.ScaleMode = 3
       End Sub   Private Sub Form_Resize()
               
       Dim mHwnd As Long             ' Holds the window handle
       mHwnd = CLng(MapInfo.Eval("WindowInfo(" & mapid & "," & WIN_INFO_WND & ")"))
       ' Pass the 'new' form dimensions to the MoveWindow API
       MoveWindow mHwnd, 0, 0, ScaleWidth, ScaleHeight, 1
       End Sub
    model1的源代码
      Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, _
                                            ByVal x As Long, ByVal y As Long, _
                                            ByVal nWidth As Long, ByVal nHeight As  Long, _
                                            ByVal bRepaint As Long) As Long您给看看,不胜感激。
      

  5.   

     to foolishtiger(吴文智):   
               好想你呀,你在哪儿呀。
      

  6.   

    to foolishtiger(吴文智):
              不看算了,下次不要这么捉弄人了!!!!
      

  7.   

    to foolishtiger(吴文智):
              不看算了,下次不要这么捉弄人了!!!!     你这话是什么意思?我上面回答了那么多,别的不说吧,光打字也打得不少啦!你倒好,这样说我,你有没有良心啊?你提的问题,别人还得一天二十四小时分分秒秒地实时关注啊!
       不好意思,我只会你所说的"捉弄人",白白了您呢!
      

  8.   

        我只是等了一个星期,等某些自诩为“专家“的来帮忙,千等万等也等不来
    ,几句抱怨而已,我知道你忙,你说看看代码,可贴了那么长时间,太阳也下山了,我每天
    有10个小时守着贴子等,光等着说帮我看代码的人到来。
    你不看也就算了,早知今日何必当初,还“不好意思,我只会你所说的"捉弄人",白白了您呢!“,会不会打字,俺看不懂的,帮忙解释一下好不好,恶心!!!你以为你是谁, 离开你csdn就不转啦,你到底会不会还不一定呢。
    谢谢你和你打的字,该给的分我一定给的,放心好了。下次也不用劳你大架了,我只需要真心帮忙的人回答问题。哎,谁叫咱没有本事呢,只好让人寒碜了。   
      

  9.   

    haitaoyu(i老虎u):你好,谢谢你,我的问题如下:
    为什么set myform =new form1以后,在form1中调用的windowmove API(让窗口中的picture跟窗口一起变大小), 原来的form1居然不可以实现该功能了,而myform却好用?有什么办法可以让 dim myform as new form1 的每个窗体(包括form1)都实现  调用windowmove API。
      

  10.   

    我没有遇到过这种情况,你的意思是被继承的窗体不能用api函数吗?
      

  11.   

    你这些问题在MSDN里面讲解详细的一塌胡涂。
      

  12.   

    haitaoyu(i老虎u):
          我的问题是用 set myform=new form1 动态创建了几个窗体后,只有最新创建的
    窗体可以用 api, 前面几个窗体中的图片都不再随窗体动了,我所有的问题源出于此。源码如上。
    donglw(天行):
         请你告诉我怎样找到。谢谢。
      

  13.   

    你的问题可能不是API不能调用,而是MoveWindow 中Hwnd的付值问题.
      

  14.   

    yangzhaoyu(老妖):
        真是一语惊醒梦中人!!!!!!!!!!!!!!!!!!
        给分给分!!!!!
        谢谢谢谢谢谢谢谢谢谢谢谢     谢谢                谢谢         谢谢
                谢谢                 谢谢                谢谢         谢谢
                谢谢                 谢谢                谢谢
                谢谢                 谢谢                谢谢
                谢谢                 谢谢                谢谢         谢谢
                谢谢                 谢谢                谢谢         谢谢
                谢谢                 谢谢                谢谢         谢谢
                谢谢                 谢谢谢谢谢谢谢谢谢谢谢谢         谢谢
                谢谢                 谢谢                谢谢         谢谢
                谢谢                 谢谢                谢谢         谢谢
                谢谢                 谢谢                谢谢         谢谢
                谢谢                 谢谢                谢谢         谢谢
                谢谢                 谢谢                谢谢         谢谢