의 맨 상호 운용성 양식을 유지합니다. .NET 폼이 VB6 폼에 던져지는 이벤트에서로드 될 때 .NET 폼이 맨 위에 머무를 수 있는지 확인하려고합니다. 나는 많은 것을 시도했고 아무 것도 할 수 없습니다. 나는 Z- 인덱스에서 등나는 InteropFormsToolkit 버전 2.1을 사용하고 있습니다 VB6 응용 프로그램
최전선에 밀어에서 User32.dll에 관리 호출, 어떤 아이디어가 감사합니다 추가 모든 것을 시도했습니다.
의 맨 상호 운용성 양식을 유지합니다. .NET 폼이 VB6 폼에 던져지는 이벤트에서로드 될 때 .NET 폼이 맨 위에 머무를 수 있는지 확인하려고합니다. 나는 많은 것을 시도했고 아무 것도 할 수 없습니다. 나는 Z- 인덱스에서 등나는 InteropFormsToolkit 버전 2.1을 사용하고 있습니다 VB6 응용 프로그램
최전선에 밀어에서 User32.dll에 관리 호출, 어떤 아이디어가 감사합니다 추가 모든 것을 시도했습니다.
등 :
Private Sub Form_Load()
OnTopMe Me, True
End Sub
및 모듈의 코드를 다음
Declare Function SetWindowPos Lib "User32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cX As Long, ByVal cY As Long, ByVal wFlags As Long) As Long
Public Sub OnTopMe(FormID As Object, onTop As Boolean)
If onTop = True Then SetWindowPos FormID.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
If onTop = False Then SetWindowPos FormID.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End Sub
내가 (닷넷
그래서 내가 겪을 수있는 문제는 VB6 앱이 .show를 사용하여 .NET Winform을 엽니 다. 그런 다음 .NET Winform은 VB6에 버블 링하는 이벤트를 발생시킵니다. 그 이유는 .NET 양식에서 단추 등을 선택할 때 표시해야하는 다른 여러 가지 VB6 "세부 정보"양식이 있기 때문입니다. 세부 양식이 맨 위에 있어야합니다. 세부 양식이 닫히면 .NET 양식이 (때로는) VB6 기본 양식 뒤에서 미끄러집니다. HTH. –
당신은 닷넷 양식 =>에서의 VB6 응용 프로그램 =>로드 닷넷 양식 => 이벤트가 VB6에서 캡처하고 해당 이벤트에 상단에 VB6 양식을 보여 것을 의미한다. 내가 틀렸다면 어디에서 vb6가 이벤트 구동으로 모든 이벤트에 대해 설명하게할까요 – Vineet1982
맞습니다. => 이벤트에 따라서 VB6 응용 프로그램은 => FrmMain.vb (VB6)이 => frmOrder에 버튼로드 frmOrder (.NET) => 버튼 VB6 frmMain 수에 LoadDetailsEvent을 발사 포함하는, VB6 FrmOrderDetails.vb (VB6)는 ShowDialog를()이다. FrmOrderDetails가 닫히면 frmOrder가 FrmMain 뒤에서 미끄러 져 보입니다. –
ShowDialog를에서 작업을 수행하는 방법에 대해 알고하지 않습니다) 또는 TopMost가 작동해야합니다. 쇼 (주인)가 정상적으로 작동하도록 VB6 윈도우에 적합한 래퍼를 가져와야합니다. IWin32Window 또는 NativeWindow입니다. 당신이 툴킷에서 빠져 나올 수 있는지는 잘 모르겠다. –
ShowDialog는 이벤트가 VB6에서 버블 다운되지 않습니다. –