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
[49461] Re:폼 내의 컨트롤(컴포넌트) 이동하기
장성호 [nasilso] 1460 읽음    2007-05-30 17:20
런타임때 Control 을 마우스로 클릭해서 옮기는것은?

[방법1]
보통 TWinControl은
MouseDown이벤트에서 아래와 같이 코딩하면 됩니다.

void __fastcall TForm1::Panel1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
    TWinControl *wCtrl=(TWinControl *)Sender;
    ReleaseCapture();
    SendMessage(wCtrl->Handle,WM_SYSCOMMAND, 0xf012, 0);
    // 또는  wCtrl->Perform(WM_SYSCOMMAND, 0xf012, 0);
}
//---------------------------------------------------------------------------



[방법2]
그러나 TImage는 안됩니다.
왜냐하면 Handle이 없기 때문입니다.


TImage 를 Mouse로  위치를 이동하려면
MouseDown   , MouseMove 이벤트를 이용해야 합니다.

그냥 마우스 Down때 좌표 기억하고
Move때 움직인 Delta만큼 TImage의 좌표를 바꿔주면 됩니다.


TImage *movImg;
int DeltaX;
int DeltaY;
//---------------------------------------------------------------------------

void __fastcall TForm1::Image1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
    movImg=(TImage *)Sender;
    movImg->BringToFront();
    DeltaX=X;
    DeltaY=Y;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
    if(Shift.Contains(ssLeft))
   {
        int dx=X-DeltaX;
        int dy=Y-DeltaY;
        if(movImg)
        {
            movImg->Left+=dx;
            movImg->Top+=dy;
        }
    }
}
//---------------------------------------------------------------------------

그럼...



수야!╋ 님이 쓰신 글 :
: 안녕하세요 ^^;;
:
: 하도 오랫만이라 생각이 안나네요. 검색을 해봐도 안나오고해서 ㅎ_ㅎ;;
:
: TForm 내에 있는 TImage같은 컨트롤들을 TForm 내에서 이동하고자 합니다.
:
: 물론 마우스로요.
:
: 간단한 명령어였던걸로 기억하는데.. 아시는분 답변좀 부탁드릴께요~
:
: 아.. 생각이 안나 ㅠ.ㅠ

+ -

관련 글 리스트
49459 폼 내의 컨트롤(컴포넌트) 이동하기 수야!╋ 1239 2007/05/30
49461     Re:폼 내의 컨트롤(컴포넌트) 이동하기 장성호 1460 2007/05/30
49466         Re:Re:폼 내의 컨트롤(컴포넌트) 이동하기 수야!╋ 1384 2007/05/30
49460     Re:폼 내의 컨트롤(컴포넌트) 이동하기 답변이 1217 2007/05/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.