YouTube | Facebook | Twitter  Feed

コマンドから表示するフォームをアプリケーションの最上位に設定する方法

2016/9/1 (木)

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Integer, ByVal nIndex As Integer, ByVal dwNewLong As Integer) As Integer
Public Declare Function GetParent Lib "user32" (ByVal hWnd As Integer) As Integer
Public Const GWL_HWNDPARENT = -8
 
'ArcMapの最上位にフォームを表示してタスクバー切り替えをArcMapに追従
Sub ShowWindowOnTopOfArcMap()
    Dim pApplication As IApplication
    Set pApplication = m_hook
     
    '特定のウィンドウハンドルの親ウィンドウハンドルを取得(Engineの場合)
    Dim pToolbarControl As IToolbarControl
    Set pToolbarControl = m_hookHelper.hook
     
    Dim intParent As Integer
    intParent = GetParent(pToolbarControl.hWnd)
     
    '親フォームのウィンドウハンドルと関連付け
    Dim intOriginal As Integer
    intOriginal = SetWindowLong(OriginalForm.hWnd, GWL_HWNDPARENT, pApplication.hWnd)
    OriginalForm.Show
     
'    '元のウィンドウハンドルを返す場合
'    SetWindowLong OriginalForm.hWnd, GWL_HWNDPARENT, intOriginal
 
End Sub
 
 
'Dim pGeometricNetwork As IGeometricNetwork
'Set pGeometricNetwork = pNetworkAnalysisExt.CurrentNetwork
 
'Dim pNetwork As INetwork
'Set pNetwork = pGeometricNetwork.Network
'
'Dim pNetElements As INetElements
'Set pNetElements = pNetwork
'
'
'Dim UserClassID As Long
'Dim UserID As Long
'Dim UserSubID As Long
'
'pNetElements.QueryIDs 0, esriETNone, UserClassID, UserID, UserSubID
'
'Debug.Print UserClassID, UserID, UserSubID

関連記事

  • この記事を書いた人

羽田 康祐

Esri認定インストラクター、GIS上級技術者、測量士補、潜水士。GISy / GISc とその関連分野である地理学・地図学について日々の出来事で学んだ記憶を記録するためにブログを書いています。行動原理は伊達と酔狂。好きな地形は圏谷。好きな地図投影法はパースクインカンシャル図法。呉市生まれ広島市出身。GIS を使った自己紹介はこちら

-プログラミング
-

© 2020 WINGFIELD since1981