델파이로 만든 폼이 윈도우의 다른 창을 가리면 안됩니다.
항상 맨 뒤에 있어야 하는데요.
그래서 윈도우 바탕화면 객체인 "Progman"를 찾고 그것을 부모창으로 두니 잘 되는데요.
문제는 PNG이미지를 스킨으로 사용하여 UpdateLayeredWindow함수와 Alpha처리를 하니
"Program manager"의 자식폼으로 들어가면 보이지가 않습니다.
어쩔 수 없이 그냥 맨 뒤로로 보내야 할 것 같은데요.
그래서 폼을 맨 뒤로 보내려고
Procedure TForm1.WMWINDOWPOSChanging(Var msg: TWMWINDOWPOSChanging);
Begin
With msg.Windowpos^ Do Begin
If (flags and SWP_NOZORDER) = 0 Then Begin
hwndInsertAfter := HWND_BOTTOM;
// flags := flags or SWP_NOACTIVATE;
End;
inherited;
End;
end;
이렇게 처리했습니다.
그런데 문제는 Win+D키를 눌렀을때 창이 내려가 버립니다.
다른 창은 다 내려가도 제가 만든 창은 그대로 둘 수 있는 방법 없을까요?
|