이 팁은 담비님(천리안 FREKBS)님이 1999년 04월 08일에 천리안 프로그래머포럼에 올리신 것입니다.
담비님으로부터는 전제하여 올리는 데 대해 허락을 받았습니다.
좋은 정보를 공유하도록 허락해주신 담비님께 감사드립니다.
───────────────────────────────────────
안녕하세요! 담비입니다.
출처 : http://www.inprise.co.jp/tips/../qanda/cbuilder/c0005065.html
폼의 타이틀바를 클릭하지 않고 클라이언트 영역을 클릭해 폼을 드래그하는 간단한
방법은 폼의 타이틀바가 클릭 되었다고 윈도우가 생각하게 하는것이다.
이것은 WM_NCHITTEST 메세지를 처리해 실현할 수 있다.
플로팅 툴바와 같이 타이틀도 보더도 없는 윈도우의 경우는 폼의 타이틀을 빈 문자열
로 설정하고 모든 BorderIcons를 false에 설정하고, BorderStyle를 bsNone으로
설정한다.
//헤더측( Unit1.hpp )
//---------------------------------------------------------------------------
class TForm1 :public TForm
{
__published: //IDE 관리의 콤포넌트
TButton *Button1;
void __fastcall Button1Click(TObject *Sender);
private: //사용자 선언
public: //사용자 선언
__fastcall TForm1(TComponent* Owner);
//추가하는 핸들러
void __fastcall WMNCHitTest( TWMNCHitTest &Mes );
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER( WM_NCHITTEST, TWMNCHitTest, WMNCHitTest )
END_MESSAGE_MAP( TForm )
};
//소스측( Unit1.cpp )
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::WMNCHitTest( TWMNCHitTest &Mes )
{
Mes.Result = HTCAPTION;
}
//---------------------------------------------------------------------------
|