2009-12-15 7 views
2

다른 응용 프로그램에서 모달 양식 (팝업)이 나타나 자마자 기다렸다가 닫을 수 있습니다. VB.NET에서이 작업을 수행하려고하지만 C#의 제안은 쉽게 변환 할 수 있어야합니다.vb.net에서 모달 팝업을 닫으시겠습니까?

모달 팝업의 캡션은 길고 고유하기 때문에 내 앱에서 하드 코딩 할 수 있습니다. 내가하고 싶은 것은 사용자가 폼의 닫는 ("X") 버튼을 클릭하거나, 폼의 defeault, tab-order 0 버튼을 클릭하는 것을 시뮬레이션하는 것입니다. 어느 쪽이든 작동합니다.

아마 제목 표시 줄 캡션 이외의 모달 팝업에 대한 자세한 정보가 필요합니까? 어쨌든 모달 형식의 고유 한 식별자로 사용하는 것이 안전합니다. 또한 팝업을 닫는 첫 번째 이벤트가 발생하자마자 코드를 검사를 종료해야합니다.

나는 그것이 사소한 것이라고 생각하지만, 그것에 대한 어떤 준비 정보도 찾을 수 없습니다. 마이크로 소프트는 내가 대신 EndDialog에()의)을 DestroyWindow를 (전화 때문에, 모달 팝업에 WM_CLOSE을 보내지해야하지만, 심지어 어떤 "창"수단 "WM_CLOSE를 전송"을 모르는 정직하게 말한다 =/

소수의 전문가를 공유해 주셔서 감사합니다! : D

P.: 이것은 AutoHotkey에서 사소한 일일 수 있습니다. 나는 그것을 모른다는 절름발이, I know I need it.

답변

1
IntPtr handle = FindWindow(null, "Dialog_Title"); 
SendMessage(handle, WM_NCDESTROY, 0, 0); 

이 닫아야 대화

+0

WM_NCDESTROY = 0x0082 –

+0

어 ... 그냥 더 잘 이해하는 단계; "파괴"한다는 것은 그것이 전체 적용을 끝낼 것인가라는 의미인가? 그리고, 귀하의 의견은 WM_NCDESTROY 대신 0x0082를 사용할 수 있다는 것을 의미합니다. 그렇지 않으면 ***을 사용해야합니다. –

+0

또한 윈도우가 있는지 어떻게 확인할 수 있습니까? (그것에 대한 부울 반환) 감사합니다! –

관련 문제