최대화(이전화면으로 복원)버튼을 비활성화 시키고 싶습니다.
그 시점이...
어떤버튼을 눌렀을때나 특정한 일을 수행했을때라 어떻게 햐야할지 모르겠습니다.
그리고..
작업표시줄에서 실행중인 프로그램을 클릭하면 최대, 최소화가 되잖아요...
그 시점을 어떻게 알 수 있을까요? 그때 메세지를 보내야하는데...
아래처럼 코딩을 했는데... 최대, 최소화 버튼을 눌렀을때는 되는데..
작업표시줄에서 클릭해서 최대, 최소화 됐을때는 안되더라구요....
아시는분.. 방법좀 알려주세요........
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;
필요한 부분에 삽입하세요.
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 연산을 해 버리시면 됩니다.
즐거운 프로그래밍 하시길~~