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
[57078] Re:[질문] OpenDialog에서 파일을 더블클릭하여 선택 후 뒷 배경에 마우스 이벤트 발생 문제 해결
장성호 [nasilso] 998 읽음    2009-06-02 00:50
정말 그렇네요. 저도 처음 알았습니다.

DoubleClick이벤트가  

LButtonDown -> LButtonUp  .. LButtonDown->LButtonUp  이렇게 두번 click해야 event가 발생하는게 아니라
LButtonDown->LButtonUp->LButtonDown    이렇게 까지하면 Bblclick이벤트가 발생하네요..


OpenDialog가 Close되고 난뒤에 MouseUp이벤트는 TImage에서만 나는게 아니라
어떤 control이라도 바로 밑에 있던 control에서는 MouseUp이벤트가 발생하고 있네요.


--------------------------------------------------------------------------
질문을 보고 좀 생각해 봤는데...

OpenDialog에서 Double-Click하여 File을 선택하였다면
OpenDialog그 Close된 직후에 WM_LBUTTONUP메세지를 한번 걸러주면 될같더군요

그래서 다음과 같이 코딩해보니.. 그럭저럭 되더군요
   ( 문제의 소지가 좀 있는 코드이긴 하지만...)

void SkipMouseUpMessage()
{
   unsigned int btn=GetKeyState(VK_LBUTTON);
   if(btn>1)
   {
      tagMSG msg;
      while(true)
      {
          PeekMessage(&msg, NULL, 0,0, PM_REMOVE);
          if(msg.message == WM_LBUTTONUP)return;

          TranslateMessage(&msg);
          DispatchMessage(&msg);
          if(msg.message==WM_LBUTTONDOWN || msg.message==WM_NCLBUTTONDOWN)return;
      }
   }
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    if(OpenDialog1->Execute())
    {
        SkipMouseUpMessage();
        //원하는 코딩 ...
   }
}


그럼...



김정현 님이 쓰신 글 :
: 제목에 써 있는데로
:
: OpenDialog에서 파일을 더블클릭하여 선택하면,
:
: 뒷 배경에 있던 TImage에 MouseUp 이벤트가 발생합니다.
:
: 이 MouseUp 이벤트가 발생하지 않게 하거나 다른 방법으로라도
:
: 스킵할 수 있는 좋은 방법이 없을까요?

+ -

관련 글 리스트
57044 [질문] OpenDialog에서 파일을 더블클릭하여 선택 후 뒷 배경에 마우스 이벤트 발생 문제 해결 김정현 820 2009/05/31
57086     Re: 모든 답변에 감사를~ 김정현 724 2009/06/02
57078     Re:[질문] OpenDialog에서 파일을 더블클릭하여 선택 후 뒷 배경에 마우스 이벤트 발생 문제 해결 장성호 998 2009/06/02
57054     Re:[질문] OpenDialog에서 파일을 더블클릭하여 선택 후 뒷 배경에 마우스 이벤트 발생 문제 해결 머슴.한석복 745 2009/06/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.