Q&A

  • 타이틀바에 마우스가 올라갔을때를 어떻게 알아내나요?
페인트샵 프로같은걸 구현하려고 하는데

내용인즉은



폼이 평소에는 기냥 타이틀바만 보이고 타이틀바 위로 마우스가 올라가면 폼이 확대되는



겁니다. 그런데 마우스가 올라갔을때와 안올라갔을때를 어떻게 알아내는지 도저히



모르겠거덩요.... 제발좀 갈켜주셔요~~~



마우스로 클릭하는건 알았는데 클릭이 아니라 기냥 마우스가 그위로 올라갔을때이거든요... 부탁드립니다. 감솨함다.

1  COMMENTS
  • Profile
    김정 2000.10.10 06:02
    안녕하세요?

    고드름 김정입니다.



    저도 막연해서 대충 구현을 해보았습니다.



    type

    TForm1 = class(TForm)

    private

    { Private declarations }

    public

    { Public declarations }

    protected

    procedure WndProc( var Message : TMessage ); override;

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}



    procedure TForm1.WndProc( var Message : TMessage );

    begin

    case Message.Msg of

    WM_NCMouseMove :

    begin

    if (Message.WParam in [ HTCAPTION,HTTOP,HTTOPLEFT,HTTOPRIGHT]) then

    begin

    if (WindowState=wsNormal) then

    WindowState := wsMaximized

    else if (WindowState=wsMaximized) then

    WindowState := wsNormal;

    end;

    end;

    end;

    inherited;

    end;



    uses 절 밑으로 복사했습니다. 그대로 갖다 붙이시면 될 것 같습니다.

    NCHITTEST 메시지가 발생하면 그 부분이 TOP(좌,위,우),캡션인지 검사해서

    번갈아 Normal, Maximize 시키는 예제입니다.



    그럼.



    궁금이.. wrote:

    > 페인트샵 프로같은걸 구현하려고 하는데

    > 내용인즉은

    >

    > 폼이 평소에는 기냥 타이틀바만 보이고 타이틀바 위로 마우스가 올라가면 폼이 확대되는

    >

    > 겁니다. 그런데 마우스가 올라갔을때와 안올라갔을때를 어떻게 알아내는지 도저히

    >

    > 모르겠거덩요.... 제발좀 갈켜주셔요~~~

    >

    > 마우스로 클릭하는건 알았는데 클릭이 아니라 기냥 마우스가 그위로 올라갔을때이거든요... 부탁드립니다. 감솨함다.