Add an Annotation FeatureClass from a Personal Geodatabase to ArcMap with ArcObjects

Procedure

  1. Start ArcMap.
  2. Create a new UIButtonControl.
  3. Right-click the UIButtonControl and select View Source.
  4. Copy below code into the UIButtonControl's click event.

    Dim  strPathName  As   String  

    strPathName = "D:"temp"yellowstone.mdb" ' Replace with the name of your Personal Geodatabase


  5. Modify the value of strPathName to reflect the location of your Personal Geodatabase.
  6. Copy the code below into the UIButtonControl's click event, immediately after the code you entered in Step 4.

    Dim  strData  As   String  

    strData 
    =   " AnnoRoad "   '  Replace with the name of your annotation FeatureClass

  7. Modify the value of strData to point to the annotation Feature Class in your Personal Geodatabase.
  8. Copy the code below into the UIButtonControl's click event, immediately after the code you entered in Step 6.

    '  Set up the WorkspaceFactory

    Dim  pWorkspaceName  As  IWorkspaceName 
    Set  pWorkspaceName  =   New  WorkspaceName 

    pWorkspaceName.WorkspaceFactoryProgID 
    =   " esricore.AccessWorkspaceFactory "  
    pWorkspaceName.PathName 
    =  strPathName 


    Dim  pDatasetName  As  IDatasetName 
    Set  pDatasetName  =   New  FeatureClassName 

    pDatasetName.Name 
    =  strData 

    Set  pDatasetName.WorkspaceName  =  pWorkspaceName 


    '  Use a lightweight Name object to open the table.

    Dim  pName  As  IName 
    Set  pName  =  pDatasetName   '  QI 

    Dim  pTable  As  ITable 
    Set  pTable  =  pName.Open 

    Dim  pFeatClass  As  IDataset 
    Set  pFeatClass  =  ptable 

    Dim  pFeatLay  As  IFeatureLayer 

    ' IFDOGraphicsLayerFactory::OpenGraphicsLayer IS THE KEY to accessing the data! 

    Dim  pFDOGraphicsLayerFactory  As  IFDOGraphicsLayerFactory 
    Set  pFDOGraphicsLayerFactory  =   New  FDOGraphicsLayerFactory 


    ' *****************************************

    '  Modify this line of code

    Set  pFeatLay  =  pFDOGraphicsLayerFactory.OpenGraphicsLayer(pfeatclass.Workspace,  Nothing " AnnoRoad "

    ' ***************************************** 

    ' Assign the name in the Table of Contents 
    pFeatLay.Name  =  pFeatClass.Name 

    '  Add the annotation to ArcMap

    Dim  pMxDoc  As  IMxDocument 
    Set  pMxDoc  =  ThisDocument 

    Dim  pMap  As  IMap 
    Set  pMap  =  pMxDoc.ActiveView 

    pMap.AddLayer pFeatLay 

    Dim  pAV  As  IActiveView 
    Set  pAV  =  pMap 

    pAV.Refresh

  9. Modify the third argument passed to the OpenGraphicsLayer method to point to the input annotation Feature Class.
  10. Test the code.

你可能感兴趣的:(annotation)