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
[54589] 마우스를 이용한 패널,메모,에디트박스의 사이즈 변경...
linuxman [] 2226 읽음    2008-09-18 00:36
안녕하세요..

팁에 있는 패널에 대한 콤포넌트 사이즈 변경에 대한것을 보고...(마우스 커서를 이용한 )
그것을 그대로 메모장이나,editbox에 적용하려고 해보니, 패널은  상하,좌우 모두 마우스 잘 동작됩니다.
그런데.. 메모장이나 editbox는 왼쪽과 윘쪽은 잘 동작하는데...

오른쪽과 아랫쪽은  마우스가 잘 인지 못하는것 같습니다... 모두 TControl을 상속 받아서, 패널과 틀릴것이 없다고 생각이 되는데... 왜 이런 차이가 생기는건가요?


void __fastcall TForm1::Panel1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{


TControl *SenderControl = dynamic_cast<TControl *>(Sender);
    int SysCommWparam;

    if(X < 4 && Y < 4)
        SysCommWparam = SC_DRAG_RESIZEUL;
    else if(X > SenderControl->Width-4 && Y > SenderControl->Height-4)
        SysCommWparam = SC_DRAG_RESIZEDR;
    else if(X < 4 && Y > SenderControl->Height-4)
        SysCommWparam = SC_DRAG_RESIZEDL;
    else if(X > SenderControl->Width-4 && Y < 4)
        SysCommWparam = SC_DRAG_RESIZEUR;
    else if(X < 4)
        SysCommWparam = SC_DRAG_RESIZEL;
    else if(X > SenderControl->Width-4)
        SysCommWparam = SC_DRAG_RESIZER;
    else if(Y < 4)
        SysCommWparam = SC_DRAG_RESIZEU;
    else if(Y > SenderControl->Height-4)
        SysCommWparam = SC_DRAG_RESIZED;
    else
        SysCommWparam = SC_DRAG_MOVE;

    ReleaseCapture();
    SendMessage(Panel1->Handle, WM_SYSCOMMAND, SysCommWparam, 0);

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Panel1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{

TControl *SenderControl = dynamic_cast<TControl *>(Sender);
    if((X < 4 && Y < 4) || (X > SenderControl->Width-4 && Y > SenderControl->
      Height-4))  
        SenderControl->Cursor = crSizeNWSE;  
    else if((X < 4 && Y > SenderControl->Height-4) || (X > SenderControl->
      Width-4 && Y < 4))
        SenderControl->Cursor = crSizeNESW;
    else if(X < 4 || X > SenderControl->Width-4)
        SenderControl->Cursor = crSizeWE;
    else if(Y < 4 || Y > SenderControl->Height-4)
        SenderControl->Cursor = crSizeNS;
    else 
        SenderControl->Cursor = crDefault;    
}

+ -

관련 글 리스트
54589 마우스를 이용한 패널,메모,에디트박스의 사이즈 변경... linuxman 2226 2008/09/18
54591     Re:마우스를 이용한 패널,메모,에디트박스의 사이즈 변경... 장성호 3569 2008/09/18
54600         Re:Re:마우스를 이용한 패널,메모,에디트박스의 사이즈 변경... linuxman 2021 2008/09/18
54601             Re:Re:Re:마우스를 이용한 패널,메모,에디트박스의 사이즈 변경... 장성호 2349 2008/09/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.