제발 도와주세요 .. 나는 프로젝트 사용 mdi 응용 프로그램을 가지고. 내 질문은, 이미 실행중인 자식을 확인하는 방법입니다 ...? 제발 도와주세요.mdi 자식이 이미 실행되고 있는지 확인 하시겠습니까?
0
A
답변
0
MDI 창을 만들었 으면 WM_MDICREATE을 올바르게 사용 했습니까? 그 메시지는 창 핸들을 반환합니다. 나중에 핸들을 참조하거나 존재 여부를 확인하려는 경우 참조 할 수 있도록 핸들을 저장해야합니다.
MDICREATESTRUCT mci;
// fill out mci...
HWND hwndChild = (HWND) SendMessage(hwndMDI, WM_MDICREATE, 0, (LPARAM)(ULONG_PTR)&mci);
// save hwndChild so that I can use it later.
2
다음 기술을 사용하지만 각 양식 유형에 대해 특정 Sub가 필요합니다 (VB.NET 사용). 그러나 하나의 하위 모든 양식을 처리하기 위해 이것을 단순화하는 방법이있을 수 있다고 확신합니다
Dim blExists As Boolean = False
For Each f As Form In Me.MdiChildren
If TypeOf (f) Is FormName Then
f.Focus()
blExists = True
Exit For
End If
Next
If Not blExists Then
fAnalysis = New FormName
fAnalysis.MdiParent = Me
fAnalysis.Show()
End If
다음 하위는 모든 양식에서 작동합니다.
Private Sub ShowNewForm(ByVal frmName As Form)
Dim blExists As Boolean = False
Dim f as Form
For Each f In Me.MdiChildren
If f.Name Is frmName.Name Then
f.Focus()
blExists = True
Exit For
End If
Next
If Not blExists Then
f = DirectCast(New Form, frmName.Type)
fAnalysis.MdiParent = Me
f.Show()
End If
End Sub
핸들을 "잃어버린"경우 http://msdn.microsoft.com/en-us/library/ms633494(VS.85).aspx를 사용할 수도 있습니다. –