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
[23532] Re:TStringGrid에서 컬럼의 리사이즈 시그널을 받을려면?
깝깝. [] 671 읽음    2003-01-04 19:07
제가 지금 하는 작업에서도 필요해서 찾아봤는뎅
아무래두 WM_NCHITTEST 에 LParam 값이 00520182가 시작값이고
00520183이 완료시 값으로 하면 될것같은뎅..
문제는 WM_NCHITTEST메세지가 수도없이 생겨서 이메세지가 일어나는 순간에 LPARAM값을
확인해서 해결한다는건 포기했어요..ㅡㅡ; 이걸 문제없이 처리하는 방법이 있을듯 한데..

"정석은 멀고 꽁수는 가깝다~!" 유명한 말 맞죠? ^ ^;;

그래서 저두 꽁수를 썼죠..^^;
제 작업 환경에선 루프를 돌려가며 값을 비교하기엔 비효율적일것 같아서
다른 방법으로 처리했죠..

컬럼이나로우가 리사이즈가 일어나는 환경은
  1.그리드의 Fixed된 부분의 경계부분에서 마우스왼쪽버튼클릭이 일어나고 나서
  2.마우스버튼이 UP하는 순간에 처리를 해주면 되죠..^ ^;

  1번 처리
    우선 bool형 변수 하나 맹글어노쿠
    MouseDown 이벤트에서 왼쪽버튼 클릭일때 좌표로 셀값읽어오는 MouseToCell함수로 셀값을
    읽어와서 이 셀값이 FixedCols보다 작으면 bool형 변수에 true로 해주고..
  2번 처리
    MouseUP 이벤트에선 bool변수값만 검사해서 true일때 다시 false로 만들고
    원하는 처리를 해주게 했죠..^ ^;;

이 방법으로 하면 Rows의 리사이즈 순간도 쉽게 잡긴하죠.. 그리고 특정 Cell들을 다시 그려주는데도 문제없이 그려지고요..
하지만 resize가 아니고 그냥 fixed영역 클릭일때도 처리된다는게 글치만..제 작업에는 지장이
없는지라..^ ^;;
좀더 정확하게 하려면 클릭되는 순간 마우스 좌표값이랑 Cell의 Rect값을 받아와서
left,right 값이랑 비교하면 되겠지요... 근데 제 작업엔 필요없어서 이러케 까지 작업하고도
잘 처리될지 보장은 못해요.. 필요하시다면 님이 해보시고 글 올려주세요..^ ^;

이상 허접한...이였어요..


민인학 님이 쓰신 글 :
: 오브젝트 인스펙터에 봐도 시그널이 없습니다.
: 아니면. 제가 못찿는것일지도요..
: 부탁드립니다. ^^
:

+ -

관련 글 리스트
23517 TStringGrid에서 컬럼의 리사이즈 시그널을 받을려면? 민인학 603 2003/01/03
23532     Re:TStringGrid에서 컬럼의 리사이즈 시그널을 받을려면? 깝깝. 671 2003/01/04
23524     Re:TStringGrid에서 컬럼의 리사이즈 시그널을 받을려면? 류현 646 2003/01/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.