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
[43936] Re:Re:드래그시 보여질 투명한 사각형 어떻게 하면 좋을지 조언 부탁 드립니다.
둥이네 [grin79] 1279 읽음    2006-03-06 10:10
^^ 감사합니다 새로운 방법이네요..^^;
너무 제가 접근 방법을 고질적인 부분만 추구 하는 것 같습니다.
여러 방면으로 생각하는게 좋을꺼 같네요. 산뜻한 댓글 정말 감사합니다. ^^;
좋은 하루 아니 즐거운 한주 되세요..

강재호.만해 님이 쓰신 글 :
: 둥이네 님이 쓰신 글 :
: : 드래그 작업시.어느 판넬에서 에서 다른 판넬로 드래그 하는 부분에..
: :  중간 이동 경로를 나타 낼려고 합니다.
: :  MouseMovie 동안... 작은 투명한 상자를 옮겨야 하는데...
: :  아무래도 사각형을 그렸다가 지웠다가 하는건 너무 비효율 적이라는 생각이 듭니다.
: : 
: :  그렇다고 투명 폼을 만들려고 하니..이거 또한 작은 가로세로 1cm 도 안되는 투명한 외각선 있는 사각형을 만들려고 하니 조금은 비효율 적이라는 생각이 드네요....
: :
: :  시각적으로 투명한 사각형이 이동하는 것을 보여주는게 어떻게 제일 좋을지 조언 부탁 드리겠습니다.
: :  지금 생각으로 마우스 클릭시 투명폼을 생성해서
: :  투명폼을 옮기는게 제일 좋을꺼 같은데..과연 이것이 효율적일지.. 조언좀 부탁 드리겠습니다.
: :
: :  PS:Panel 에서 드래그는 어떻게 알수 있는지 조언 부탁 드립니다.
: :  DragOver ,DragDrop,EndDrag,StartDrag 다 해봤는데..
: :  각각 함수에 ShowMessage 해서 확인해보니...아무것도 안보이네요..
: :  마우스 Down,Up ,Move 만 보이던데..드래그 중인 이벤트는 어떻게 알아 내야하는지도 조언 부탁 드립니다.
: :  한 판넬에서 다른 판넬로의 드래그를 확인해야 하는데 이걸 어떻게 확인할지...조언 부탁 드립니다.
: :
: :  마우스 up Event 가 드래그 후 다른 판넬이나 폼 위치에서도 생기던데..
: :  이때 처리를 해야 하는지요...
: :
: :  제가 적고 나서도 너무 뒤죽 박죽인거 같습니다. ^^; 담부터는 한개의 질문만 올려야 겠네요..죄송합니다.
:
: 안녕하세요 만해입니다.
:
: 저희 회사 프로그램인 이지클릭의 경우에는( 광고성글 아니예요 ㅋㅋ~ ^^a;)
:
: 패널을 이동시키는 부분을 Application->OnMessage 이벤트를 오버 로딩 시켜서
:
: 메세지가 별로 해당 하는 부분을 처리 하는 방식을 이용 합니다.
:
: 그러니깐 소스의 일부를 보여 드리면요 다음과 같습니다.
:
:  switch (Msg.message)
:     {
:         case WM_MOUSEWHEEL :
:          여기에 해당 이벤트에서 처리 해야할 내용을 입력
:         break;
:
:         case WM_LBUTTONDOWN:
:         break;
:
:         case WM_LBUTTONUP:
:         break;
:
:         case WM_MOUSEMOVE:
:         break;
:
:         case WM_RBUTTONDOWN:
:         break;
:
:     }
:
: 그리고 해당하는 컨트롤을 알아 내는 방식은 getCursorPos함수로 포인터를 가져온다음에
:
: 그 포인터에 존재하는 Control을 알아 내는 방식을 이용합니다.
:
: 제 개인적으로는 저 방식이 나쁘진 않는데 별로 맘에 안들어서
:
: Panel의 이벤트를 오버 로딩 하는 방식을 사용하고 싶은데 기존에 만들어진 소스를 제가 아직 다 파악 못해서
:
: 아직 바꾸기엔 좀 이르네요 ㅋ~
:
: 그리고 선택된 Panel을 드래그 하는것은 WM_LBUTTONDOWN이벤트에서
:
: 마우스를 눌렀다고 프로그램에서 인식 하게 하고, 그리고 WM_MOUSEMOVE 이벤트에서 그 태그값이 온이면
:
: 해당 컨트롤을 움직이게 되어 있습니다.
:
: 그리고 WM_RBUTTONUP이벤트 일때 태그값 초기화 시키는 방식을 이용하고 있습니다.
:
: 참고만 하세요 이게 정답은 아니니깐요 분명히 더 좋은 방법은 존재 합니다.
:
: 그리고 포인터를 가져와서 컨트롤을 가져 올려면
:
: GetCursorPos(&p);
: if (FindControl(WindowFromPoint(p)) == NULL)
:   return NULL;
:
: 이런식으로 현재 마우스 포지션이 전체 윈도우에서 어디에 있는지를 변환 시키고 난 다음에
:
: 컨트롤을 가져 와야 합니다.
:
: 참고만 하시고요 좋은 방법 찾으셔서 좋은 프로그램 만드세요
:
: 주저리 주저리 말만 많네요 ㅋ~

+ -

관련 글 리스트
43907 드래그시 보여질 투명한 사각형 어떻게 하면 좋을지 조언 부탁 드립니다. 둥이네 1175 2006/03/03
43929     Re:드래그시 보여질 투명한 사각형 어떻게 하면 좋을지 조언 부탁 드립니다. 강재호.만해 1315 2006/03/05
43936         Re:Re:드래그시 보여질 투명한 사각형 어떻게 하면 좋을지 조언 부탁 드립니다. 둥이네 1279 2006/03/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.