C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[59361] Re:메인창에서 ShowMessage 또는 모달창을 띄웠을때 부모창 클릭시 모달창이 깜빡이지 않습니다.
장성호 [nasilso] 2544 읽음    2009-12-07 14:08
음...

[원인]
이것은 VCL의 모든폼이 WndParent가 Application->Handle이 되기 때문입니다.
Application->Handle 도 윈도우핸들인데 화면에 보이지 않기 때문에 click할수가 거의 없죠

vcl로 만든 Application에서는
Application->MainForm이  메인폼이기는 하니
실제적으로 메인폼은  Applcation->Handle이 메인폼이 됩니다.
Applcation->Handle 과 Application->MainForm->Handle이 같지 않죠


만약 win32api 인 MessageBox를 띄울때도 첫번째 parameter에 NULL을 주면 ..
껌뻑거림이 없을것입니다.

[해결방법]

Form의 CreateParams에서 Params.WndParent를 현재 ActiveForm.Handle로 설정해주시면 됩니다.
ShowModal되는 폼이 한해서..


ShowMessage나 MessageDlg 의 경우에도
위 메세지박스는 TMessageForm이라는 TForm을 상속받은 폼을 생성해서 modal로 띄워줄뿐인데요
소스코드를 직접수정하지 않고는 불편하므로..
ShowMessage대신 win32api인 MessageBox를 쓰시면 될듯 합니다.

그럼..



심성현 님이 쓰신 글 :
: Win32 API 또는 MFC나 .net 에서 모달창을 띄우거나 메시지박스를 띄웠을때 부모창을 마우스로 클릭하면 제어권에 모달창에 있기 때문에 부모창으로 메시지가 가지 않고 모달창이 깜빡깜빡 거립니다.
:
: 그런데 vcl 폼 어플리케이션으로 만들었을때 모달창이나 메시지박스를 띄우면 부모창에 마우스 메시지가 전달되지 않는건 맞는데 모달창이 깜빡거리지는 않습니다. 깜빡거리게 하고 싶은데..
:
: 원래 vcl에서는 그런건지 그리고 깜빡거리게 동작하게 하는 방법이 있는건지 궁금하네요.

+ -

관련 글 리스트
59357 메인창에서 ShowMessage 또는 모달창을 띄웠을때 부모창 클릭시 모달창이 깜빡이지 않습니다. 심성현 1475 2009/12/07
59361     Re:메인창에서 ShowMessage 또는 모달창을 띄웠을때 부모창 클릭시 모달창이 깜빡이지 않습니다. 장성호 2544 2009/12/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.