siro 님이 쓰신 글 :
: 폼사이즈를 중간에서 Resize를 할려고 합니다.
:
: 예를 들어 폼의 양쪽 끝이 아니라 ... 폼 안에 있는 패널을 잡고 Resize를 시킬수 있도록
: 하고 싶은데 이렇게 할때 패널의 원하는 위치에 갔을때 제가 원하는 메세지를 보내야 해야
: 할것 같은데 어떤 메세지를 어떻게 보내야 할지 잘 모르겠군요.
:
: 고수님들 답변 부탁드립니다.
임펠리테리입니다.
Tip'N Tricks에 비슷한 예가 있는데 보셨는지...? 47번 팁이랍니다.
그 팁을 약간만 응용하면 됩니다. 팁에는 다음과 같은 소스가 있죠.
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);
}
이 소스에서 마지막의 SendMessage() 함수에서, Panel1->Handle을 그냥 Handle로 바꾸어주세요.
만약 아직 그 팁을 보시지 않으셨다면 먼저 한번 읽어본 후에 해보시는 게 이해가 빠를겁니다.
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=47
그럼 참고하시길...