Q&A

  • 최대화버튼 비활성화 어떻게 하죠? 작업표시줄에서 최대,최소화 됐을때 어떻게 알아내나요?
최대화(이전화면으로 복원)버튼을 비활성화 시키고 싶습니다.

그 시점이...  

어떤버튼을 눌렀을때나 특정한 일을 수행했을때라 어떻게 햐야할지 모르겠습니다.

그리고..

작업표시줄에서 실행중인 프로그램을 클릭하면 최대, 최소화가 되잖아요...

그 시점을 어떻게 알 수 있을까요?  그때 메세지를 보내야하는데...

아래처럼 코딩을 했는데... 최대, 최소화 버튼을 눌렀을때는 되는데..

작업표시줄에서 클릭해서 최대, 최소화 됐을때는 안되더라구요....

아시는분..  방법좀 알려주세요........  

procedure TCsisMainF.WMSysCommand(var Msg : TWMSysCommand);
begin
case Msg.CmdType of
   SC_MINIMIZE : begin
                   if zHandleConf <> 0 then begin
                     sendMessage(zHandleConf, 9302, 0, 0);
                     showmessage('MINIMIZE');
                   end;
                 end;
   SC_MAXIMIZE : begin
                   if zHandleConf <> 0 then begin
                     sendMessage(zHandleConf, 9303, 0, 0);
                     showmessage('MAXMIZE');
                   end;
                 end;
   SC_RESTORE : showmessage('RESTORE');  
end;
inherited;
end;

1  COMMENTS
  • Profile
    구창민 2003.02.25 23:43
    구창민입니다.

    필요한 부분에 삽입하세요.

    var
      style : LongInt;
    begin
      style:= GetWindowLong(Handle,GWL_STYLE);
      style:= style and (not WS_MAXIMIZEBOX);
      style:= style and (not WS_MAXIMIZEBOX);
      SetWindowLong(Handle, GWL_STYLE, style);
      SendMessage(Handle, WM_SETREDRAW,1,0);
      RedrawWindow(Handle, nil,0, RDW_ERASE or RDW_FRAME or RDW_INVALIDATE or RDW_ALLCHILDREN);

    ...

    다시 살리고 싶으실땐 or 연산을 해 버리시면 됩니다.

    즐거운 프로그래밍 하시길~~