|
안녕하세요 스페로입니다.
폼크레이트 이벤트에서는 안되네요..
여러가지 이벤트에 적용해보니
적합한지는 모르지만 OnPaint 이벤트에서 됩니다.
그리고 이렇게 생성한 캡션바는 마우스로 드래그가 안되니..
bsNone폼에 마우스 드래그 할수 있는 코드를 조금 수정해서
마우스 Y의 값을 GetSystemMetrics(SM_CYCAPTION)보다 작거나 같을때만 동작하게
수정했더니 잘됩니다.
void __fastcall TForm1::FormPaint(TObject *Sender)
{
HDC dc = GetDC(Form1->Handle);
DrawCaption(Form1->Handle, dc,
&Bounds(0, 0, Width, GetSystemMetrics(SM_CYCAPTION)),
DC_ACTIVE | DC_TEXT);
ReleaseDC(Form1->Handle, dc);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
if (Y <= GetSystemMetrics(SM_CYCAPTION)){
ReleaseCapture();
SendMessage( Handle,WM_SYSCOMMAND,0xf012,0 );
}
}
//---------------------------------------------------------------------------
소스를 보시면 알수 잇을 거에요..
그럼 즐프~~
진수.네모 님이 쓰신 글 :
: 폼 border style = bsnone 으로 하고 다음 코드를 form create 이벤트에 넣었거든요..
:
:
: HDC dc = GetDC(Form1->Handle);
:
: DrawCaption(Form1->Handle, dc,
: &Bounds(0, 0, Width, GetSystemMetrics(SM_CYCAPTION)),
: DC_ACTIVE | DC_TEXT);
:
: ReleaseDC(Form1->Handle, dc);
:
:
: 이렇게 하면 캡션바가 생긴다던데 저는 안나타 나네요? 잘못하는 건가요?
:
: 이렇게 생긴 캡션바를 마우스로 클릭후 이동하게 하는 방법에 대해 설명 부탁 드립니다.
|