IMO, 당신은 할 WM_GETMINMAXINFO
을 사용할 수 없습니다. 하지만이 Win+UP
를 통해, 또는 예를 들어 ShowWindow(Handle, SW_MAXIMIZE)
를 사용하여 전송되는 아니에요 - 수는 Msg.CmdType=SC_MAXIMIZE
또는 문서화되지 않은 SC_MAXIMIZE2 = $F032
와 WM_SYSCOMMAND
입니다
에서-사실 유일한 메시지. 나는 창을 최대화하는 것입니다 감지 할 수
있는 유일한 방법은 WM_GETMINMAXINFO
후 바로 해고되는 WM_WINDOWPOSCHANGING
경유 :
type
TForm1 = class(TForm)
private
procedure WMWindowPosChanging(var Message: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING;
end;
implementation
const
SWP_STATECHANGED = $8000;
procedure TForm1.WMWindowPosChanging(var Message: TWMWindowPosChanging);
begin
inherited;
if (Message.WindowPos^.flags and (SWP_STATECHANGED or SWP_FRAMECHANGED)) <> 0 then
begin
if (Message.WindowPos^.x < 0) and (Message.WindowPos^.y < 0) then
ShowMessage('Window state is about to change to MAXIMIZED');
end;
end;
당신은'WM_GETMINMAXINFO'를 처리 할 수 있습니다. – kobik
@kobik, 고마워,하지만 크기와 위치 만 내가하고 싶은 유일한 일이 아니다. 윈도우가 최대화 될 때이를 감지해야하며 WM_GETMINMAXINFO에서이를 인식 할 수 없습니다. –