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
[48599] Re:OnMouseDown 이벤트는 한번만 발생하나요?
장성호 [nasilso] 1541 읽음    2007-03-28 00:43
WM_LBUTTONDOWN 이벤트는 MOUSE를 Down할때 한번만 발생합니다.
마우스를 누르고 있는 상태에서도 마우스를 움직이지 않는다면 어떤메세지도 발생하지 않습니다.
다시 말해 가만히 있으면 어떤 이벤트도 발생하지 않는것입니다.

그래서 TScrollbar의  동작로직을 보려고  pas 코드를 봤는데 .
쩝쩝  어떻게 동작하는지 잘모르겠더구요 (델파이는 문법도 잘 몰라서..)
이상하게 이놈은 WM_LBUTTONDOWN 이벤트는 발생하는데 ..
WM_LBUTTONUP 이벤트는 발생하지 않더군요(각설하고)

그럼 님께서 구현하고자 하는 mouse_down상태를 유지하는경우
자동으로 특정변수의 값을 증가하고자 한다면 어떻게 해야하나?


방법1
   timer를 이용해 mouse down되면 up될때까지 주기적으로  특정변수값을 증가시키는 방법
   그러나   TTimer를 이용할경우 좀... ...


방법2
   그냥 OnMouseDown 이벤트에서 while문 돌리면서  mouse up 될때까지 일정시간간격으로
    변수값을 증가시키면 됩니다.

=====================예제=========================================
(방법2 예제)

bool bMouseDown=false;

void __fastcall TForm1::Button2MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
    bMouseDown=true;
    int icnt=10;
    Memo1->Lines->Add("Down ");
    while(bMouseDown)
    {
        Application->ProcessMessages();
        Sleep(100);
        icnt--;
        if(icnt==0)
        {
            icnt=2;
            Memo1->Lines->Add("Pluse ++ ");                          //이부분에서 특정변수값을 증가시켜주면 됨    
                                                                                          //200msec  0.2초마다 이벤트 발생
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2MouseUp(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
     bMouseDown=false;
}
//---------------------------------------------------------------------------


그럼....



leaderkk 님이 쓰신 글 :
: 버튼이 눌려진 상태면 이벤트가 계속 발생해야 하는 것이 맞는 것 같아서요?
:
: 제가 구현하려고 하는 것이 어떤 버튼이 눌려진 상태면 그 이벤트가 발생하는 동안 특정 변수의 값을 증가 시키려고 합
:
: 니다.
:
: 질문과 답변란에 찾아 봤지만 제가 하려고 하는 것과 비슷한 답변이 없네요.

+ -

관련 글 리스트
48595 OnMouseDown 이벤트는 한번만 발생하나요? leaderkk 1065 2007/03/27
48599     Re:OnMouseDown 이벤트는 한번만 발생하나요? 장성호 1541 2007/03/28
48602         먼저 답변 감사합니다. 그러면 어떤 버튼이 눌려진 상태인지 계속 체크하는 방법이 있을까요? leaderkk 951 2007/03/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.