Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  DockableWindow

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   DockableWindow (1828 mal gelesen)
rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik


Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 1571
Registriert: 15.11.2006

Windows 7 x64, AIS 2014

erstellt am: 01. Sep. 2010 22:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo

Ich habe ein AddIn (dll) dem ich gern ein dockablewindow hinzufügen möchte. Ich habe meinem Projekt einen Dialog hinzugefügt der später mal iProps anzeigen soll. Das dockablewindow wird erstellt und angezeigt.
Aber wie füge ich meinen Dialog in das dockablewindow ein. In der Hilfe steht mittels hwnd, nur wo kommt das her? Kann man einen Dialog überhaupt so einfügen oder muß dafür eine eigene dll erstellt werden?

------------------
MfG
RK

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daywa1k3r
Moderator
Softwareentwickler




Sehen Sie sich das Profil von daywa1k3r an!   Senden Sie eine Private Message an daywa1k3r  Schreiben Sie einen Gästebucheintrag für daywa1k3r

Beiträge: 3497
Registriert: 01.08.2002

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012

erstellt am: 01. Sep. 2010 23:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für rkauskh 10 Unities + Antwort hilfreich

Hallo RK,

du solltest aus deinem Dialog ein Control machen. Die HWND von dem Control kannst du dann an dein DockableWindow übergeben. Kann morgen mal nach Beispielcode schauen...

------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik


Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 1571
Registriert: 15.11.2006

Windows 7 x64, AIS 2014

erstellt am: 01. Sep. 2010 23:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo

Das wäre nett, danke.

------------------
MfG
RK

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daywa1k3r
Moderator
Softwareentwickler




Sehen Sie sich das Profil von daywa1k3r an!   Senden Sie eine Private Message an daywa1k3r  Schreiben Sie einen Gästebucheintrag für daywa1k3r

Beiträge: 3497
Registriert: 01.08.2002

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012

erstellt am: 02. Sep. 2010 09:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für rkauskh 10 Unities + Antwort hilfreich

Hi, ich war gestern irgendwie auf BrowserPanes, da machen wir immer custom controls und fügen diese ein. Bei DockableWindow scheint das auch mit ganzen Dialogen zu funktionieren. Dazu erstelle einfach eine Instanz von deinem Dialog, und übergebe Handle an die AddChild Methode (myForm.Handle / this.Handle). BTW., du hast PM...

------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik


Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 1571
Registriert: 15.11.2006

Windows 7 x64, AIS 2014

erstellt am: 02. Sep. 2010 20:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo

Hab's hinbekommen. Keine Ahnung warum es jetzt geht, aber mit einem UserForm läuft es.

Falls es jemand mal nachbauen will, ich habe es so gemacht:

in die StandardAddInServer.vb:

Code:
Public Sub UserControl()

            Dim oUserInterfaceMgr As UserInterfaceManager
            oUserInterfaceMgr = myInventor.UserInterfaceManager

            ' Create a new dockable window
            Dim oWindow As Inventor.DockableWindow
            oWindow = oUserInterfaceMgr.DockableWindows.Add("Test-ID", "ToolboxInternalName", "Test")

            'Create the new UserControl
            Dim UControl1 As New UControl()

            ' Add the UserControl as a child to the dockable window
            oWindow.AddChild(UControl1.Handle)

            ' Pass the control the Inventor Application object.  It does this
            ' using the InventorApplication property that was implented on the control.
            UControl1.InventorApp = myInventor

            ' Don't allow docking to top and bottom
            oWindow.DisabledDockingStates = Inventor.DockingStateEnum.kDockTop + Inventor.DockingStateEnum.kDockBottom

            'Dock left
            oWindow.DockingState = Inventor.DockingStateEnum.kDockLeft

            'Set Window Size
            oWindow.SetMinimumSize(250, 267)

            ' Make the window visible
            oWindow.Visible = True

        End Sub


Dann ein UserForm "UserControl" mit einem Label "lblMass1" erstellt. In die UserControl.vb:

Code:
Public Class UControl

    Private m_ClickCount As Integer = 0
    Private m_inventorApp As Inventor.Application
    Private WithEvents appEvents As Inventor.ApplicationEvents
    Private m_currentDoc As Inventor.PartDocument


    Public Property InventorApp() As Inventor.Application
        Get
            Return m_inventorApp
        End Get
        Set(ByVal value As Inventor.Application)
            m_inventorApp = value
            appEvents = m_inventorApp.ApplicationEvents

            If m_inventorApp.Documents.Count > 0 Then
                If m_inventorApp.ActiveEditDocument.DocumentType = Inventor.DocumentTypeEnum.kPartDocumentObject Then
                    m_currentDoc = m_inventorApp.ActiveEditDocument
                    UpdateDocumentInfo()
                Else
                    m_currentDoc = Nothing
                    UpdateDocumentInfo()
                End If
            Else
                m_currentDoc = Nothing
                UpdateDocumentInfo()
            End If
        End Set
    End Property

    Private Sub UpdateDocumentInfo()
        If m_currentDoc Is Nothing Then
            Me.lblMass1.Text = "Mass1: "
        Else
            Me.lblMass1.Text = "Mass1: " & ReadUserPropertyValue(m_currentDoc, "Mass1")
        End If
    End Sub

    Private Sub appEvents_OnDocumentChange(ByVal DocumentObject As Inventor._Document, ByVal BeforeOrAfter As Inventor.EventTimingEnum, ByVal ReasonsForChange As Inventor.CommandTypesEnum, ByVal Context As Inventor.NameValueMap, ByRef HandlingCode As Inventor.HandlingCodeEnum) Handles appEvents.OnDocumentChange
        If Not m_currentDoc Is Nothing Then
            UpdateDocumentInfo()
        End If
    End Sub

    Private Sub appEvents_OnNewEditObject(ByVal EditObject As Object, ByVal BeforeOrAfter As Inventor.EventTimingEnum, ByVal Context As Inventor.NameValueMap, ByRef HandlingCode As Inventor.HandlingCodeEnum) Handles appEvents.OnNewEditObject
        If m_inventorApp.ActiveEditDocument.DocumentType = Inventor.DocumentTypeEnum.kPartDocumentObject Then
            If Not m_inventorApp.ActiveEditDocument Is m_currentDoc Then
                m_currentDoc = m_inventorApp.ActiveEditDocument
                UpdateDocumentInfo()
            End If
        Else
            m_currentDoc = Nothing
            UpdateDocumentInfo()
        End If
    End Sub

    ' ---
    ' Benutzer-Property lesen
    Public Function ReadUserPropertyValue(ByVal oDoc As Inventor.Document, ByVal sPropertyName As String) As String
        Try
            Dim oProperty As Inventor.Property
            For Each oProperty In oDoc.PropertySets.Item("User Defined Properties")
                If oProperty.Name.ToUpper = sPropertyName.ToUpper Then
                    Return oProperty.Value
                End If
            Next
            Return ""
        Catch ex As Exception
            Return ""
        End Try
    End Function

End Class


Bitte fügen Sie ihre Kritik hier an... 

------------------
MfG
RK

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2020 CAD.de | Impressum | Datenschutz